home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_HDF.idb / usr / freeware / include / hdf / hproto.h.z / hproto.h
Encoding:
C/C++ Source or Header  |  1999-01-26  |  121.5 KB  |  3,795 lines

  1. /****************************************************************************
  2.  * NCSA HDF                                                                 *
  3.  * Software Development Group                                               *
  4.  * National Center for Supercomputing Applications                          *
  5.  * University of Illinois at Urbana-Champaign                               *
  6.  * 605 E. Springfield, Champaign IL 61820                                   *
  7.  *                                                                          *
  8.  * For conditions of distribution and use, see the accompanying             *
  9.  * hdf/COPYING file.                                                        *
  10.  *                                                                          *
  11.  ****************************************************************************/
  12.  
  13. /* $Id: hproto.h,v 1.173 1998/02/12 23:49:49 epourmal Exp $ */
  14.  
  15. #ifndef _H_PROTO
  16. #define _H_PROTO
  17.  
  18. /* Usefull macros, which someday might become actual functions */
  19. /* Wrappers for Hinquire. feb-2-92 */
  20. #define HQueryfileid(aid, fileid)     \
  21.   (Hinquire ((int32)   aid,  (int32*) fileid, (uint16*) NULL,\
  22.              (uint16*) NULL, (int32*) NULL,   (int32*)  NULL,\
  23.              (int32*)  NULL, (int16*) NULL,   (int16*)  NULL))
  24.  
  25. #define HQuerytagref(aid, tag, ref) \
  26.   (Hinquire ((int32)   aid,  (int32*) NULL,   (uint16*) tag,\
  27.              (uint16*) ref,  (int32*) NULL,   (int32*)  NULL,\
  28.              (int32*)  NULL, (int16*) NULL,   (int16*)  NULL))
  29.  
  30. #define HQuerylength(aid, length)     \
  31.   (Hinquire ((int32)    aid, (int32*) NULL, (uint16*) NULL,   \
  32.              (uint16*) NULL, (int32*) length,   (int32*)  NULL,   \
  33.              (int32*)  NULL, (int16*) NULL, (int16*)  NULL))
  34.  
  35. #define HQueryoffset(aid, offset)     \
  36.   (Hinquire ((int32)    aid, (int32*) NULL, (uint16*) NULL,   \
  37.              (uint16*) NULL, (int32*) NULL,     (int32*)  offset, \
  38.              (int32*)  NULL, (int16*) NULL,     (int16*)  NULL))
  39.  
  40. #define HQueryposition(aid, position) \
  41.   (Hinquire ((int32)    aid, (int32*) NULL, (uint16*) NULL,   \
  42.              (uint16*) NULL, (int32*) NULL, (int32*)  NULL,   \
  43.              (int32*) position, (int16*) NULL,  (int16*)  NULL))
  44.  
  45. #define HQueryaccess(aid, access)     \
  46.   (Hinquire ((int32)    aid,    (int32*) NULL,   (uint16*) NULL,  \
  47.              (uint16*) NULL,    (int32*) NULL,   (int32*)  NULL,  \
  48.              (int32*)   NULL,   (int16*) access, (int16*)  NULL))
  49.  
  50. #define HQueryspecial(aid, special) \
  51.   (Hinquire ((int32)    aid,    (int32*) NULL,  (uint16*) NULL,   \
  52.              (uint16*) NULL,    (int32*) NULL,  (int32*)  NULL,   \
  53.              (int32*)   NULL,   (int16*) NULL,  (int16*)  special))
  54.  
  55.  
  56. #if defined c_plusplus || defined __cplusplus
  57. extern      "C"
  58. {
  59. #endif                          /* c_plusplus || __cplusplus */
  60.  
  61. /*
  62.    ** from hfile.c
  63.  */
  64.     extern int32 Hopen
  65.                 (const char *path, intn acc_mode, int16 ndds);
  66.  
  67.     extern intn Hclose
  68.                 (int32 file_id);
  69.  
  70.     extern int32 Hstartread
  71.                 (int32 file_id, uint16 tag, uint16 ref);
  72.  
  73.     extern intn Hnextread
  74.                 (int32 access_id, uint16 tag, uint16 ref, intn origin);
  75.  
  76.     extern intn Hexist
  77.                 (int32 file_id, uint16 search_tag, uint16 search_ref);
  78.  
  79.     extern intn Hinquire
  80.                 (int32 access_id, int32 * pfile_id, uint16 * ptag,
  81.           uint16 * pref, int32 * plength, int32 * poffset,
  82.         int32 * pposn, int16 * paccess, int16 * pspecial);
  83.  
  84.     extern int32 Hstartwrite
  85.                 (int32 file_id, uint16 tag, uint16 ref, int32 length);
  86.  
  87.     extern int32 Hstartaccess
  88.                 (int32 file_id, uint16 tag, uint16 ref, uint32 flags);
  89.  
  90.     extern intn Hsetlength
  91.                 (int32 file_id, int32 length);
  92.  
  93.     extern intn Happendable
  94.                 (int32 aid);
  95.  
  96.     extern intn HPisappendable
  97.                 (int32 aid);
  98.  
  99.     extern intn HPregister_term_func
  100.                 (hdf_termfunc_t term_func);
  101.  
  102.     extern intn Hseek
  103.                 (int32 access_id, int32 offset, intn origin);
  104.  
  105.     extern int32 Htell
  106.                 (int32 access_id);
  107.  
  108.     extern int32 Hread
  109.                 (int32 access_id, int32 length, void * data);
  110.  
  111.     extern int32 Hwrite
  112.                 (int32 access_id, int32 length, const void * data);
  113.  
  114.     extern int32 Htrunc
  115.                 (int32 access_id, int32 trunc_len);
  116.  
  117.     extern intn Hendaccess
  118.                 (int32 access_id);
  119.  
  120.     extern intn HDgetc
  121.                 (int32 access_id);
  122.  
  123.     extern intn HDputc
  124.                 (uint8 c, int32 access_id);
  125.  
  126.     extern int32 Hgetelement
  127.                 (int32 file_id, uint16 tag, uint16 ref, uint8 * data);
  128.  
  129.     extern int32 Hputelement
  130.                 (int32 file_id, uint16 tag, uint16 ref, const uint8 * data, int32 length);
  131.  
  132.     extern int32 Hlength
  133.                 (int32 file_id, uint16 tag, uint16 ref);
  134.  
  135.     extern int32 Hoffset
  136.                 (int32 file_id, uint16 tag, uint16 ref);
  137.  
  138.     extern intn Hsync
  139.                 (int32 file_id);
  140.  
  141.     extern intn Hcache
  142.                 (int32 file_id, intn cache_on);
  143.  
  144.     extern intn Hgetlibversion
  145.                 (uint32 * majorv, uint32 * minorv,
  146.                  uint32 * releasev, char * string);
  147.  
  148.     extern intn Hgetfileversion
  149.                 (int32 file_id, uint32 * majorv, uint32 * minorv,
  150.                  uint32 * release, char * string);
  151.  
  152.     extern intn Hsetaccesstype(int32 access_id, uintn accesstype);
  153.  
  154.     extern uint16 HDmake_special_tag
  155.                 (uint16 tag);
  156.  
  157.     extern intn HDis_special_tag
  158.                 (uint16 tag);
  159.  
  160.     extern uint16 HDbase_tag
  161.                 (uint16 tag);
  162.  
  163.     extern int  HDerr
  164.                 (int32 file_id);
  165.  
  166.     extern intn HDvalidfid
  167.                 (int32 file_id);
  168.  
  169.     extern const char *HDgettagdesc
  170.                 (uint16 tag);
  171.  
  172.     extern char *HDgettagsname
  173.                 (uint16 tag);
  174.  
  175.     extern intn HDgettagnum
  176.                 (const char *tag_name);
  177.  
  178.     extern char *HDgetNTdesc
  179.                 (int32 nt);
  180.  
  181.     extern const char *HDfidtoname
  182.                 (int32 fid);
  183.  
  184.     extern intn Hishdf
  185.                 (const char * filename);
  186.  
  187.     extern intn Hfidinquire
  188.                 (int32 file_id, char ** fname, intn * acc_mode,
  189.                  intn * attach);
  190.     
  191.     extern intn Hshutdown(void);
  192.  
  193.     extern void HPend(void);
  194.  
  195.     extern intn HDdont_atexit(void);
  196.  
  197. /*
  198.    ** from hfiledd.c
  199.  */
  200. /******************************************************************************
  201.  NAME
  202.      Hdupdd - Duplicate a data descriptor
  203.  
  204.  DESCRIPTION
  205.     Duplicates a data descriptor so that the new tag/ref points to the
  206.     same data element pointed to by the old tag/ref.  Return FAIL if
  207.     the given tag/ref are already in use.
  208.  
  209.  RETURNS
  210.     returns SUCCEED (0) if successful, FAIL (-1) otherwise
  211.  
  212. *******************************************************************************/
  213. intn Hdupdd(int32 file_id,      /* IN: File ID the tag/refs are in */
  214.         uint16 tag,             /* IN: Tag of new tag/ref */
  215.         uint16 ref,             /* IN: Ref of new tag/ref */
  216.         uint16 old_tag,         /* IN: Tag of old tag/ref */
  217.         uint16 old_ref          /* IN: Ref of old tag/ref */
  218. );
  219.  
  220. /******************************************************************************
  221.  NAME
  222.      Hnumber - Determine the number of objects of a given type
  223.  
  224.  DESCRIPTION
  225.     Determine how many objects of the given tag are in the file.
  226.     tag may be set to DFTAG_WILDCARD to get back the total number
  227.     of objects in the file.
  228.  
  229.     Note, a return value of zero is not a fail condition.
  230.  
  231.  RETURNS
  232.     the number of objects of type 'tag' else FAIL
  233.  
  234. *******************************************************************************/
  235. int32 Hnumber(int32 file_id,    /* IN: File ID the tag/refs are in */
  236.         uint16 tag              /* IN: Tag to count */
  237. );
  238.  
  239. /******************************************************************************
  240.  NAME
  241.      Hnewref - Returns a ref that is guaranteed to be unique in the file
  242.  
  243.  DESCRIPTION
  244.     Returns a ref number that can be used with any tag to produce a
  245.     unique tag/ref.  Successive calls to Hnewref will generate a
  246.     strictly increasing sequence until the highest possible ref had been
  247.     returned, then Hnewref will return unused ref's starting from 1.
  248.  
  249.  RETURNS
  250.     returns the ref number, 0 otherwise
  251.  
  252. *******************************************************************************/
  253. uint16 Hnewref(int32 file_id        /* IN: File ID the tag/refs are in */
  254. );
  255.  
  256. /******************************************************************************
  257.  NAME
  258.     Htagnewref  - returns a ref that is unique in the file for a given tag
  259.  
  260.  DESCRIPTION
  261.     Returns a ref number that can be used with any tag to produce a
  262.     unique tag/ref.  Successive calls to Hnewref will generate a
  263.     strictly increasing sequence until the highest possible ref had been
  264.     returned, then Hnewref will return unused ref's starting from 1.
  265.  
  266.  RETURNS
  267.     returns the ref number, 0 otherwise
  268.  
  269. *******************************************************************************/
  270. uint16 Htagnewref(int32 file_id,    /* IN: File ID the tag/refs are in */
  271.         uint16 tag                  /* IN: Tag to search for a new ref for */
  272. );
  273.  
  274. /******************************************************************************
  275.  NAME
  276.     Hfind - locate the next object of a search in an HDF file
  277.  
  278.  DESCRIPTION
  279.     Searches for the `next' DD that fits the search tag/ref.  Wildcards
  280.     apply.  If origin is DF_FORWARD, search from current position forwards
  281.     in the file, otherwise DF_BACKWARD searches backward from the current
  282.     position in the file.  If *find_tag and *find_ref are both set to
  283.     0, this indicates the beginning of a search, and the search will
  284.     start from the beginning of the file if the direction is DF_FORWARD
  285.     and from the and of the file if the direction is DF_BACKWARD.
  286.  
  287.  RETURNS
  288.     returns SUCCEED (0) if successful and FAIL (-1) otherwise
  289.  
  290. *******************************************************************************/
  291. intn Hfind(int32 file_id,       /* IN: file ID to search in */
  292.         uint16 search_tag,      /* IN: the tag to search for (can be DFTAG_WILDCARD) */
  293.         uint16 search_ref,      /* IN: ref to search for (can be DFREF_WILDCARD) */
  294.         uint16 *find_tag,       /* IN: if (*find_tag==0) and (*find_ref==0) then start search */
  295.                                 /* OUT: tag matching the search tag */
  296.         uint16 *find_ref,       /* IN: if (*find_tag==0) and (*find_ref==0) then start search */
  297.                                 /* OUT: ref matching the search ref */
  298.         int32 *find_offset,     /* OUT: offset of the data element found */
  299.         int32 *find_length,     /* OUT: length of the data element found */
  300.         intn direction          /* IN: Direction to search in: */
  301.                                 /*  DF_FORWARD searches forward from the current location */
  302.                                 /*  DF_BACKWARD searches backward from the current location */
  303. );
  304.  
  305.  
  306. /******************************************************************************
  307.  NAME
  308.      HDcheck_tagref - Checks to see if tag/ref is in DD list i.e. created already
  309.  
  310.  DESCRIPTION
  311.      Routine checks to see if tag/ref exists in the DD list i.e. has
  312.      been created.
  313.  
  314.  RETURNS
  315.      0-> tag/ref does not exist
  316.      1-> tag/ref exists
  317.     -1-> function failed
  318.  
  319. *******************************************************************************/
  320. intn 
  321. HDcheck_tagref(int32  file_id, /* IN: id of file */
  322.                uint16 tag,     /* IN: Tag to check */
  323.                uint16 ref      /* IN: ref to check */);
  324.  
  325. /************************************************************************
  326. NAME
  327.    HDreuse_tagref -- reuse a data descriptor preserving tag/ref
  328.  
  329. DESCRIPTION
  330.    Reuses the data descriptor of tag/ref in the dd list of the file.
  331.    The tag/ref must already exist in the DD list.
  332.    This routine is unsafe and may leave a file in a condition that is
  333.    not usable by some routines.  Use with care. Not valid for
  334.    special elments right now. Used for allowing the data to change
  335.    and move somewhere else in the file for non-special elements.
  336.    Must be carefully if apply to higher-level objects like GR's and SDS
  337.    that are comprised of other objects. 
  338.    Usefull when re-writing simple elements whose size changes while
  339.    preserving the original tag/ref of the element since other elements
  340.    might refer to this element by tag/ref e.g. in a Vgroup.
  341.  
  342. RETURNS
  343.    returns SUCCEED (0) if successful, FAIL (-1) otherwise
  344. ************************************************************************/
  345. intn 
  346. HDreuse_tagref(int32 file_id, /* IN: id of file */
  347.                uint16 tag,    /* IN: tag of data descriptor to reuse */
  348.                uint16 ref     /* IN: ref of data descriptor to reuse */ );
  349.  
  350. /******************************************************************************
  351.  NAME
  352.      Hdeldd - Delete a data descriptor
  353.  
  354.  DESCRIPTION
  355.     Deletes a data descriptor of tag/ref from the dd list of the file.
  356.     This routine is unsafe and may leave a file in a condition that is
  357.     not usable by some routines.  Use with care.
  358.     For example, if this element is contained in a Vgroup, that group
  359.     will *NOT* get updated to reflect that this element has been deleted.
  360.  
  361.  RETURNS
  362.     returns SUCCEED (0) if successful, FAIL (-1) otherwise
  363.  
  364. *******************************************************************************/
  365. intn Hdeldd(int32 file_id,      /* IN: File ID the tag/refs are in */
  366.         uint16 tag,             /* IN: Tag of tag/ref to delete */
  367.         uint16 ref              /* IN: Ref of tag/ref to delete */
  368. );
  369.  
  370. /*
  371.    ** from hdfalloc.c
  372.  */
  373.  
  374.     extern void * HDmemfill
  375.                 (void * dest, const void * src, uint32 item_size, uint32 num_items);
  376.  
  377.     extern char *HIstrncpy
  378.                 (char * dest, const char * source, int32 len);
  379.  
  380.     extern int32 HDspaceleft
  381.                 (void);
  382.  
  383. #if defined MALLOC_CHECK
  384.     extern void * HDmalloc
  385.                 (uint32 qty);
  386.  
  387.     extern void * HDrealloc
  388.                 (void * where, uint32 qty);
  389.  
  390.     extern void * HDcalloc
  391.                 (uint32 n, uint32 size);
  392.  
  393.     extern void HDfree
  394.                 (void * ptr);
  395.  
  396. #endif /* defined MALLOC_CHECK */
  397.  
  398. #if defined VMS || defined macintosh || defined MAC || defined SYMANTEC_C || defined MIPSEL || defined NEXT || defined CONVEX || defined IBM6000 || defined SUN || defined IRIX
  399.     extern char *HDstrdup
  400.                 (const char *s);
  401.  
  402. #endif
  403.  
  404.     extern intn HDc2fstr
  405.                 (char * str, intn len);
  406.  
  407.     extern char *HDf2cstring
  408.                 (_fcd fdesc, intn len);
  409.  
  410.     extern intn HDflush
  411.                 (int32 file_id);
  412.  
  413.     extern intn HDpackFstring
  414.                 (char * src, char * dest, intn len);
  415.  
  416. /*
  417.    ** from hblocks.c
  418.  */
  419.     extern int32 HLcreate
  420.                 (int32 file_id, uint16 tag, uint16 ref, int32 block_length,
  421.                  int32 number_blocks);
  422.  
  423.     extern intn HLconvert
  424.                 (int32 aid, int32 block_length, int32 number_blocks);
  425.  
  426.     extern int  HDinqblockinfo
  427.                 (int32 aid, int32 *length, int32 *first_length, int32 *block_length,
  428.                  int32 *number_blocks);
  429.  
  430. /*
  431.    ** from hextelt.c
  432.  */
  433.     extern int32 HXcreate
  434.                 (int32 file_id, uint16 tag, uint16 ref, const char * extern_file_name,
  435.                  int32 offset, int32 start_len);
  436.  
  437.     extern intn HXsetcreatedir
  438.                 (const char *dir);
  439.  
  440.     extern intn HXsetdir
  441.                 (const char *dir);
  442.  
  443. /*
  444.    ** from hcomp.c
  445.  */
  446.     extern int32 HCcreate
  447.                 (int32 file_id, uint16 tag, uint16 ref,
  448.                  comp_model_t model_type, model_info * m_info,
  449.                  comp_coder_t coder_type, comp_info * c_info);
  450.  
  451.     extern int32 HCPquery_encode_header(comp_model_t model_type, model_info * m_info,
  452.              comp_coder_t coder_type, comp_info * c_info);
  453.  
  454.     extern intn HCPencode_header(uint8 *p, comp_model_t model_type, model_info * m_info,
  455.              comp_coder_t coder_type, comp_info * c_info);
  456.  
  457.     extern intn HCPdecode_header(uint8 *p, comp_model_t *model_type, model_info * m_info,
  458.              comp_coder_t *coder_type, comp_info * c_info);
  459.  
  460.  
  461. /*
  462.    ** from hvblocks.c
  463.  */
  464.     extern int32 HVcreate
  465.                 (int32 file_id, uint16 tag, uint16 ref);
  466.  
  467. /*
  468.    ** from herr.c
  469.  */
  470.     extern const char *HEstring
  471.                 (hdf_err_code_t error_code);
  472.  
  473.     extern void HEpush
  474.                 (hdf_err_code_t error_code, const char * function_name,
  475.                  const char * file_name, intn line);
  476.  
  477.     extern void HEreport
  478.                 (const char *,...);
  479.  
  480.     extern void HEprint
  481.                 (FILE * stream, int32 print_level);
  482.  
  483.     extern int16 HEvalue
  484.                 (int32 level);
  485.  
  486.     extern void HEPclear
  487.                 (void);
  488.  
  489.      extern intn HEshutdown(void);
  490.  
  491. /*
  492.    ** from hbitio.c
  493.  */
  494.     extern int32 Hstartbitread
  495.                 (int32 file_id, uint16 tag, uint16 ref);
  496.  
  497.     extern int32 Hstartbitwrite
  498.                 (int32 file_id, uint16 tag, uint16 ref, int32 length);
  499.  
  500.     extern intn Hbitappendable
  501.                 (int32 bitid);
  502.  
  503.     extern intn Hbitwrite
  504.                 (int32 bitid, intn count, uint32 data);
  505.  
  506.     extern intn Hbitread
  507.                 (int32 bitid, intn count, uint32 *data);
  508.  
  509.     extern intn Hbitseek
  510.                 (int32 bitid, int32 byte_offset, intn bit_offset);
  511.  
  512.     extern intn Hgetbit
  513.                 (int32 bitid);
  514.  
  515.     extern int32 Hendbitaccess
  516.                 (int32 bitfile_id, intn flushbit);
  517.  
  518.     extern intn HPbitshutdown(void);
  519.  
  520. /*
  521.    ** from dfcomp.c
  522.  */
  523.     extern intn DFputcomp
  524.                 (int32 file_id, uint16 tag, uint16 ref, const uint8 * image,
  525.         int32 xdim, int32 ydim, uint8 * palette, uint8 * newpal,
  526.                  int16 scheme, comp_info * cinfo);
  527.  
  528.     extern int  DFgetcomp
  529.                 (int32 file_id, uint16 tag, uint16 ref, uint8 * image,
  530.                  int32 xdim, int32 ydim, uint16 scheme);
  531.  
  532. /*
  533.    ** from dfrle.c
  534.  */
  535.     extern int32 DFCIrle
  536.                 (const void * buf, void * bufto, int32 len);
  537.  
  538.     extern int32 DFCIunrle
  539.                 (uint8 * buf, uint8 *bufto, int32 outlen, int resetsave);
  540.  
  541. /*
  542.    ** from dfimcomp.c
  543.  */
  544.     extern void DFCIimcomp
  545.                 (int32 xdim, int32 ydim, const uint8 *in, uint8 out[],
  546.                  uint8 in_pal[], uint8 out_pal[], int mode);
  547.  
  548.     extern void DFCIunimcomp
  549.                 (int32 xdim, int32 ydim, uint8 in[], uint8 out[]);
  550.  
  551. /*
  552.    ** from dfjpeg.c
  553.  */
  554.  
  555.     extern intn DFCIjpeg
  556.                 (int32 file_id, uint16 tag, uint16 ref, int32 xdim, int32 ydim,
  557.                  const void * image, int16 scheme, comp_info * scheme_info);
  558.  
  559. /*
  560.    ** from dfunjpeg.c
  561.  */
  562.  
  563.     extern intn DFCIunjpeg
  564.                 (int32 file_id, uint16 tag, uint16 ref, void * image, int32 xdim,
  565.                  int32 ydim, int16 scheme);
  566.  
  567. /*
  568.    ** from dfgroup.c
  569.  */
  570.     extern int32 DFdiread
  571.                 (int32 file_id, uint16 tag, uint16 ref);
  572.  
  573.     extern intn DFdiget
  574.                 (int32 list, uint16 * ptag, uint16 * pref);
  575.  
  576.     extern intn DFdinobj
  577.                 (int32 list);
  578.  
  579.     extern int32 DFdisetup
  580.                 (int maxsize);
  581.  
  582.     extern intn DFdiput
  583.                 (int32 list, uint16 tag, uint16 ref);
  584.  
  585.     extern intn DFdiwrite
  586.                 (int32 file_id, int32 list, uint16 tag, uint16 ref);
  587.                 
  588.     extern void DFdifree
  589.                 (int32 groupID);
  590.  
  591. /*
  592.    ** from dfp.c
  593.  */
  594.     extern intn DFPgetpal
  595.                 (const char * filename, void * palette);
  596.  
  597.     extern intn DFPputpal
  598.                 (const char * filename, const void * palette, intn overwrite, const char * filemode);
  599.  
  600.     extern intn DFPaddpal
  601.                 (const char * filename, const void * palette);
  602.  
  603.     extern intn DFPnpals
  604.                 (const char * filename);
  605.  
  606.     extern intn DFPreadref
  607.                 (const char * filename, uint16 ref);
  608.  
  609.     extern intn DFPwriteref
  610.                 (const char * filename, uint16 ref);
  611.  
  612.     extern intn DFPrestart
  613.                 (void);
  614.  
  615.     extern uint16 DFPlastref
  616.                 (void);
  617.  
  618. /*
  619.    ** from dfr8.c
  620.  */
  621.     extern int  DFR8setcompress
  622.                 (int32 scheme, comp_info * cinfo);
  623.  
  624.     extern intn DFR8getdims
  625.                 (const char * filename, int32 * pxdim, int32 * pydim,
  626.                  int * pispal);
  627.  
  628.     extern intn DFR8getimage
  629.                 (const char * filename, uint8 * image, int32 xdim, int32 ydim,
  630.                  uint8 * pal);
  631.  
  632.     extern intn DFR8setpalette
  633.                 (uint8 * pal);
  634.  
  635.     extern intn DFR8putimage
  636.                 (const char * filename, const void * image, int32 xdim, int32 ydim, uint16 compress);
  637.  
  638.     extern intn DFR8addimage
  639.                 (const char * filename, const void * image, int32 xdim, int32 ydim, uint16 compress);
  640.  
  641.     extern intn DFR8nimages
  642.                 (const char * filename);
  643.  
  644.     extern intn DFR8readref
  645.                 (const char * filename, uint16 ref);
  646.  
  647.     extern intn DFR8writeref
  648.                 (const char * filename, uint16 ref);
  649.  
  650.     extern intn DFR8restart
  651.                 (void);
  652.  
  653.     extern uint16 DFR8lastref
  654.                 (void);
  655.  
  656.     extern intn DFR8getpalref(uint16 *pal_ref);
  657.  
  658.     extern intn DFR8Pshutdown(void);
  659.  
  660. /*
  661.    ** from dfgr.c
  662.  */
  663.     extern intn DFGRgetlutdims
  664.                 (const char * filename, int32 * pxdim, int32 * pydim,
  665.                  intn * pncomps, intn * pil);
  666.  
  667.     extern intn DFGRreqlutil
  668.                 (intn il);
  669.  
  670.     extern intn DFGRgetlut
  671.                 (const char * filename, void * lut, int32 xdim, int32 ydim);
  672.  
  673.     extern intn DFGRgetimdims
  674.                 (const char * filename, int32 * pxdim, int32 * pydim,
  675.                  intn * pncomps, intn * pil);
  676.  
  677.     extern intn DFGRreqimil
  678.                 (intn il);
  679.  
  680.     extern intn DFGRgetimage
  681.                 (const char * filename, void * image, int32 xdim, int32 ydim);
  682.  
  683.     extern intn DFGRsetcompress
  684.                 (int32 scheme, comp_info * cinfo);
  685.  
  686.     extern intn DFGRsetlutdims
  687.                 (int32 xdim, int32 ydim, intn ncomps, intn il);
  688.  
  689.     extern intn DFGRsetlut
  690.                 (void * lut, int32 xdim, int32 ydim);
  691.  
  692.     extern intn DFGRaddlut
  693.                 (const char * filename, void * lut, int32 xdim, int32 ydim);
  694.  
  695.     extern intn DFGRsetimdims
  696.                 (int32 xdim, int32 ydim, intn ncomps, intn il);
  697.  
  698.     extern intn DFGRaddimage
  699.                 (const char * filename, void * image, int32 xdim, int32 ydim);
  700.  
  701.     extern intn DFGRputimage
  702.                 (const char * filename, void * image, int32 xdim, int32 ydim);
  703.  
  704.     extern intn DFGRreadref
  705.                 (const char * filename, uint16 ref);
  706.  
  707.     extern uint16 DFGRIlastref
  708.                 (void);
  709.  
  710.     extern intn DFGRIgetdims
  711.                 (const char * filename, int32 * pxdim, int32 * pydim,
  712.                  intn * pncomps, intn * pil, intn type);
  713.  
  714.     extern intn DFGRIreqil
  715.                 (intn il, intn type);
  716.  
  717.     extern intn DFGRIgetimlut
  718.                 (const char * filename, void * imlut, int32 xdim, int32 ydim, intn type,
  719.                  intn isfortran, int *compressed, uint16 *compr_type, int *has_pal);
  720.  
  721.     extern intn DFGRIsetdims
  722.                 (int32 xdim, int32 ydim, intn ncomps, intn type);
  723.  
  724.     extern intn DFGRIsetil
  725.                 (intn il, intn type);
  726.  
  727.     extern intn DFGRIrestart
  728.                 (void);
  729.  
  730.     extern intn DFGRIaddimlut
  731.                 (const char * filename, const void * imlut, int32 xdim, int32 ydim, intn type,
  732.                  intn isfortran, intn newfile);
  733.  
  734.     extern intn DFGRPshutdown(void);
  735.  
  736. /*
  737.    ** from df24.c
  738.  */
  739.     extern intn DF24getdims
  740.                 (const char * filename, int32 * pxdim, int32 * pydim,
  741.                  intn * pil);
  742.  
  743.     extern intn DF24reqil
  744.                 (intn il);
  745.  
  746.     extern intn DF24getimage
  747.                 (const char * filename, void * image, int32 xdim, int32 ydim);
  748.  
  749.     extern intn DF24setdims
  750.                 (int32 xdim, int32 ydim);
  751.  
  752.     extern intn DF24setil
  753.                 (intn il);
  754.  
  755.     extern intn DF24setcompress
  756.                 (int32 type, comp_info * cinfo);
  757.  
  758.     extern intn DF24restart
  759.                 (void);
  760.  
  761.     extern intn DF24addimage
  762.                 (const char * filename, const void * image, int32 xdim, int32 ydim);
  763.  
  764.     extern intn DF24putimage
  765.                 (const char * filename, const void * image, int32 xdim, int32 ydim);
  766.  
  767.     extern intn DF24nimages
  768.                 (const char * filename);
  769.  
  770.     extern intn DF24readref
  771.                 (const char * filename, uint16 ref);
  772.  
  773.     extern uint16 DF24lastref
  774.                 (void);
  775.  
  776. /*
  777.    ** from dfan.c
  778.  */
  779.  
  780.     extern int32 DFANgetlablen
  781.                 (const char * filename, uint16 tag, uint16 ref);
  782.  
  783.     extern intn DFANgetlabel
  784.                 (const char * filename, uint16 tag, uint16 ref, char * label,
  785.                  int32 maxlen);
  786.  
  787.     extern int32 DFANgetdesclen
  788.                 (const char * filename, uint16 tag, uint16 ref);
  789.  
  790.     extern intn DFANgetdesc
  791.                 (const char * filename, uint16 tag, uint16 ref, char * desc,
  792.                  int32 maxlen);
  793.  
  794.     extern int32 DFANgetfidlen
  795.                 (int32 file_id, intn isfirst);
  796.  
  797.     extern int32 DFANgetfid
  798.                 (int32 file_id, char * id, int32 maxlen, intn isfirst);
  799.  
  800.     extern int32 DFANgetfdslen
  801.                 (int32 file_id, intn isfirst);
  802.  
  803.     extern int32 DFANgetfds
  804.                 (int32 file_id, char * desc, int32 maxlen, intn isfirst);
  805.  
  806.     extern intn DFANputlabel
  807.                 (const char * filename, uint16 tag, uint16 ref, char * label);
  808.  
  809.     extern intn DFANputdesc
  810.                 (const char * filename, uint16 tag, uint16 ref, char * desc,
  811.                  int32 desclen);
  812.  
  813.     extern intn DFANaddfid
  814.                 (int32 file_id, char * id);
  815.  
  816.     extern intn DFANaddfds
  817.                 (int32 file_id, char * desc, int32 desclen);
  818.  
  819.     extern uint16 DFANlastref
  820.                 (void);
  821.  
  822.     extern intn DFANlablist
  823.                 (const char * filename, uint16 tag, uint16 reflist[],
  824.          char * labellist, intn listsize, intn maxlen, intn startpos);
  825.  
  826.     extern intn DFANclear
  827.                 (void);
  828.  
  829.     extern intn DFANIclear
  830.                 (void);
  831.  
  832.     extern uint16 DFANIlocate
  833.                 (int32 file_id, int type, uint16 tag, uint16 ref);
  834.  
  835.     extern int  DFANIaddentry
  836.                 (int type, uint16 annref, uint16 datatag, uint16 dataref);
  837.  
  838.     extern int32 DFANIgetannlen
  839.                 (const char * filename, uint16 tag, uint16 ref, int type);
  840.  
  841.     extern intn DFANIgetann
  842.                 (const char * filename, uint16 tag, uint16 ref, uint8 * ann,
  843.                  int32 maxlen, int type);
  844.  
  845.     extern intn DFANIputann
  846.                 (const char * filename, uint16 tag, uint16 ref, uint8 * ann,
  847.                  int32 annlen, int type);
  848.  
  849.     extern int  DFANIlablist
  850.                 (const char * filename, uint16 tag, uint16 reflist[],
  851.             uint8 * labellist, int listsize, int maxlen, int startpos,
  852.                  int isfortran);
  853.  
  854.     extern int  DFANIaddfann
  855.                 (int32 file_id, char * ann, int32 annlen, int type);
  856.  
  857.     extern int32 DFANIgetfannlen
  858.                 (int32 file_id, int type, int isfirst);
  859.  
  860.     extern int32 DFANIgetfann
  861.                 (int32 file_id, char * ann, int32 maxlen, int type, int isfirst);
  862.  
  863.     extern intn DFANPshutdown(void);
  864.  
  865. /*
  866.    ** from dfsd.c
  867.  */
  868.  
  869.     extern int  DFSDgetdims
  870.                 (const char * filename, intn * prank, int32 sizes[], intn maxrank);
  871.  
  872.     extern int  DFSDgetdatastrs
  873.                 (char * label, char * unit, char * format, char * coordsys);
  874.  
  875.     extern int  DFSDgetdimstrs
  876.                 (int dim, char * label, char * unit, char * format);
  877.  
  878.     extern int  DFSDgetdatalen
  879.                 (int * llabel, int * lunit, int * lformat, int * lcoordsys);
  880.  
  881.     extern int  DFSDgetdimlen
  882.                 (int dim, int * llabel, int * lunit, int * lformat);
  883.  
  884.     extern int  DFSDgetdimscale
  885.                 (intn dim, int32 maxsize, void * scale);
  886.  
  887.     extern int  DFSDgetrange
  888.                 (void * pmax, void * pmin);
  889.  
  890.     extern int  DFSDgetdata
  891.                 (const char * filename, intn rank, int32 maxsizes[], void * data);
  892.  
  893.     extern int  DFSDsetlengths
  894.                 (int maxlen_label, int maxlen_unit, int maxlen_format,
  895.                  int maxlen_coordsys);
  896.  
  897.     extern int  DFSDsetdims
  898.                 (intn rank, int32 dimsizes[]);
  899.  
  900.     extern int  DFSDsetdatastrs
  901.                 (const char * label, const char * unit, const char * format, const char * coordsys);
  902.  
  903.     extern int  DFSDsetdimstrs
  904.                 (int dim, const char * label, const char * unit, const char * format);
  905.  
  906.     extern int  DFSDsetdimscale
  907.                 (intn dim, int32 dimsize, void * scale);
  908.  
  909.     extern int  DFSDsetrange
  910.                 (void * maxi, void * mini);
  911.  
  912.     extern int  DFSDputdata
  913.                 (const char * filename, intn rank, int32 dimsizes[], void * data);
  914.  
  915.     extern int  DFSDadddata
  916.                 (const char * filename, intn rank, int32 dimsizes[], void * data);
  917.  
  918.     extern int  DFSDrestart
  919.                 (void);
  920.  
  921.     extern int32 DFSDndatasets
  922.                 (char * filename);
  923.  
  924.     extern int  DFSDclear
  925.                 (void);
  926.  
  927.     extern uint16 DFSDlastref
  928.                 (void);
  929.  
  930.     extern int  DFSDreadref
  931.                 (char * filename, uint16 ref);
  932.  
  933.     extern int  DFSDgetslice
  934.                 (const char * filename, int32 winst[], int32 windims[], void * data,
  935.                  int32 dims[]);
  936.  
  937.     extern int  DFSDstartslice
  938.                 (const char * filename);
  939.  
  940.     extern int  DFSDputslice
  941.                 (int32 winend[], void * data, int32 dims[]);
  942.  
  943.     extern int  DFSDendslice
  944.                 (void);
  945.  
  946.     extern int  DFSDsetNT
  947.                 (int32 numbertype);
  948.  
  949.     extern int  DFSDsetorder
  950.                 (int arrayorder);
  951.  
  952.     extern int  DFSDgetNT
  953.                 (int32 * pnumbertype);
  954.  
  955.     extern intn DFSDpre32sdg
  956.                 (char * filename, uint16 ref, intn * ispre32);
  957.  
  958.     extern int  DFSDsetcal
  959.                 (float64 cal, float64 cal_err, float64 ioff,
  960.                  float64 ioff_err, int32 cal_nt);
  961.  
  962.     extern int  DFSDgetcal
  963.                 (float64 * pcal, float64 * pcal_err, float64 * pioff,
  964.                  float64 * pioff_err, int32 * cal_nt);
  965.  
  966.     extern int  DFSDwriteref
  967.                 (const char * filename, uint16 ref);
  968.  
  969.     extern int  DFSDsetfillvalue
  970.                 (void * fill_value);
  971.  
  972.     extern int  DFSDgetfillvalue
  973.                 (void * fill_value);
  974.  
  975.     extern int  DFSDstartslab
  976.                 (const char * filename);
  977.  
  978.     extern int  DFSDwriteslab
  979.                 (int32 start[], int32 stride[], int32 count[],
  980.                  void * data);
  981.  
  982.     extern int  DFSDendslab
  983.                 (void);
  984.  
  985.     extern int  DFSDreadslab
  986.                 (const char *filename, int32 start[], int32 slab_size[],
  987.              int32 stride[], void * buffer, int32 buffer_size[]);
  988.  
  989.     extern intn DFSDPshutdown(void);
  990.  
  991. /*
  992.    ** from dfconv.c
  993.  */
  994.  
  995.     extern int  DFKNTsize
  996.                 (int32 number_type);
  997.  
  998.     extern int32 DFKisnativeNT
  999.                 (int32 numbertype);
  1000.  
  1001.     extern int32 DFKislitendNT
  1002.                 (int32 numbertype);
  1003.  
  1004.     extern int8 DFKgetPNSC
  1005.                 (int32 numbertype, int32 machinetype);
  1006.  
  1007.     extern intn DFKsetNT
  1008.                 (int32 ntype);
  1009.  
  1010.     extern int32 DFKconvert
  1011.                 (void * source, void * dest, int32 ntype, int32 num_elm,
  1012.                  int16 acc_mode, int32 source_stride, int32 dest_stride);
  1013.  
  1014. /*
  1015.    ** from dfknat.c
  1016.  */
  1017.  
  1018.     extern intn DFKnb1b
  1019.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1020.  
  1021.     extern intn DFKnb2b
  1022.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1023.  
  1024.     extern intn DFKnb4b
  1025.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1026.  
  1027.     extern intn DFKnb8b
  1028.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1029.  
  1030. /*
  1031.    ** from dfkswap.c
  1032.  */
  1033.  
  1034.     extern intn DFKsb2b
  1035.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1036.  
  1037.     extern intn DFKsb4b
  1038.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1039.  
  1040.     extern intn DFKsb8b
  1041.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1042.  
  1043. /*
  1044.    ** from dfkcray.c
  1045.  */
  1046.  
  1047.     extern intn DFKui2i
  1048.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1049.  
  1050.     extern intn DFKui2s
  1051.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1052.  
  1053.     extern intn DFKuo2i
  1054.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1055.  
  1056.     extern intn DFKuo2s
  1057.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1058.  
  1059.     extern intn DFKui4i
  1060.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1061.  
  1062.     extern intn DFKui4s
  1063.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1064.  
  1065.     extern intn DFKuo4i
  1066.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1067.  
  1068.     extern intn DFKuo4s
  1069.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1070.  
  1071.     extern intn DFKui4f
  1072.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1073.  
  1074.     extern intn DFKuo4f
  1075.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1076.  
  1077.     extern intn DFKui8f
  1078.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1079.  
  1080.     extern intn DFKuo8f
  1081.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1082.  
  1083.     extern intn DFKlui2i
  1084.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1085.  
  1086.     extern intn DFKlui2s
  1087.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1088.  
  1089.     extern intn DFKluo2i
  1090.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1091.  
  1092.     extern intn DFKluo2s
  1093.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1094.  
  1095.     extern intn DFKlui4i
  1096.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1097.  
  1098.     extern intn DFKlui4s
  1099.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1100.  
  1101.     extern intn DFKluo4i
  1102.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1103.  
  1104.     extern intn DFKluo4s
  1105.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1106.  
  1107.     extern intn DFKlui4f
  1108.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1109.  
  1110.     extern intn DFKluo4f
  1111.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1112.  
  1113.     extern intn DFKlui8f
  1114.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1115.  
  1116.     extern intn DFKluo8f
  1117.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1118.  
  1119. /* CRAY-MPP */
  1120.     extern intn DFKmi2i
  1121.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1122.  
  1123.     extern intn DFKmi2s
  1124.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1125.  
  1126.     extern intn DFKmo2b
  1127.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1128.  
  1129.     extern intn DFKlmi2i
  1130.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1131.  
  1132.     extern intn DFKlmi2s
  1133.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1134.  
  1135.     extern intn DFKlmo2b
  1136.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1137.  
  1138.  
  1139. /*
  1140.    ** from dfkvms.c
  1141.  */
  1142.  
  1143.     extern intn DFKvi4f
  1144.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1145.  
  1146.     extern intn DFKvo4f
  1147.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1148.  
  1149.     extern intn DFKvi8f
  1150.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1151.  
  1152.     extern intn DFKvo8f
  1153.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1154.  
  1155.     extern intn DFKlvi4f
  1156.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1157.  
  1158.     extern intn DFKlvo4f
  1159.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1160.  
  1161.     extern intn DFKlvi8f
  1162.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1163.  
  1164.     extern intn DFKlvo8f
  1165.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1166.  
  1167. /*
  1168.    ** from dfkconv.c
  1169.  */
  1170.  
  1171.     extern intn DFKci4f
  1172.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1173.  
  1174.     extern intn DFKco4f
  1175.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1176.  
  1177.     extern intn DFKci8f
  1178.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1179.  
  1180.     extern intn DFKco8f
  1181.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1182.  
  1183.     extern intn DFKlci4f
  1184.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1185.  
  1186.     extern intn DFKlco4f
  1187.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1188.  
  1189.     extern intn DFKlci8f
  1190.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1191.  
  1192.     extern intn DFKlco8f
  1193.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1194.  
  1195. /*
  1196.    ** from dfkfuji.c
  1197.  */
  1198.  
  1199.     extern intn DFKpi4f
  1200.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1201.  
  1202.     extern intn DFKpo4f
  1203.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1204.  
  1205.     extern intn DFKpi8f
  1206.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1207.  
  1208.     extern intn DFKpo8f
  1209.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1210.  
  1211.     extern intn DFKlpi4f
  1212.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1213.  
  1214.     extern intn DFKlpo4f
  1215.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1216.  
  1217.     extern intn DFKlpi8f
  1218.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1219.  
  1220.     extern intn DFKlpo8f
  1221.                 (void * s, void * d, uint32 num_elm, uint32 source_stride, uint32 dest_stride);
  1222.  
  1223. /*
  1224.    ** from dfanF.c
  1225.  */
  1226. #ifndef DFAN_FNAMES
  1227. #   define  DFAN_FNAMES
  1228. #ifdef DF_CAPFNAMES
  1229. #   define ndaiganl  FNAME(DAIGANL)
  1230. #   define ndaigann  FNAME(DAIGANN)
  1231. #   define ndaipann  FNAME(DAIPANN)
  1232. #   define ndailist  FNAME(DAILIST)
  1233. #   define ndalref   FNAME(DALREF)
  1234. #   define ndaclear  FNAME(DACLEAR)
  1235. #   define ndfanlastref     FNAME(DFANLASTREF)
  1236.  
  1237. #   define ndfanaddfds      FNAME(DFANADDFDS)
  1238. #   define ndfangetfidlen   FNAME(DFANGETFIDLEN)
  1239. #   define ndfangetfdslen   FNAME(DFANGETFDSLEN)
  1240. #   define ndfangetfid      FNAME(DFANGETFID)
  1241. #   define ndfangetfds      FNAME(DFANGETFDS)
  1242. #   define ndaafds          FNAME(DAAFDS)
  1243. #   define ndagfidl         FNAME(DAGFIDL)
  1244. #   define ndagfdsl         FNAME(DAGFDSL)
  1245. #   define ndagfid          FNAME(DAGFID)
  1246. #   define ndagfds          FNAME(DAGFDS)
  1247. #   define ndaiafid         FNAME(DAIAFID)
  1248. #else                           /* DF_CAPFNAMES */
  1249. #   define ndaiganl  FNAME(daiganl)
  1250. #   define ndaigann  FNAME(daigann)
  1251. #   define ndaipann  FNAME(daipann)
  1252. #   define ndailist  FNAME(dailist)
  1253. #   define ndalref   FNAME(dalref)
  1254. #   define ndaclear  FNAME(daclear)
  1255. #   define ndfanlastref     FNAME(dfanlastref)
  1256.  
  1257. #   define ndfanaddfds      FNAME(dfanaddfds)
  1258. #   define ndfangetfidlen   FNAME(dfangetfidlen)
  1259. #   define ndfangetfdslen   FNAME(dfangetfdslen)
  1260. #   define ndfangetfid      FNAME(dfangetfid)
  1261. #   define ndfangetfds      FNAME(dfangetfds)
  1262. #   define ndaafds          FNAME(daafds)
  1263. #   define ndagfidl         FNAME(dagfidl)
  1264. #   define ndagfdsl         FNAME(dagfdsl)
  1265. #   define ndagfid          FNAME(dagfid)
  1266. #   define ndagfds          FNAME(dagfds)
  1267. #   define ndaiafid         FNAME(daiafid)
  1268. #endif                          /* DF_CAPFNAMES */
  1269. #endif                          /* DFAN_FNAMES */
  1270.  
  1271.     extern      FRETVAL(intf) ndaiganl
  1272.                 (_fcd filename, intf * tag, intf * ref, intf * type,
  1273.                  intf * fnlen);
  1274.  
  1275.     extern      FRETVAL(intf) ndaigann
  1276.                 (_fcd filename, intf * tag, intf * ref, _fcd annotation,
  1277.                  intf * maxlen, intf * type, intf * fnlen);
  1278.  
  1279.     extern      FRETVAL(intf) ndaipann
  1280.                 (_fcd filename, intf * tag, intf * ref, _fcd annotation,
  1281.                  intf * annlen, intf * type, intf * fnlen);
  1282.  
  1283.     extern      FRETVAL(intf) ndailist
  1284.                 (_fcd filename, intf * tag, intf reflist[], _fcd labellist,
  1285.           intf * listsize, intf * maxlen, intf * startpos,
  1286.                  intf * fnlen);
  1287.  
  1288.     extern      FRETVAL(intf) ndalref
  1289.                 (void);
  1290.  
  1291.     extern      FRETVAL(intf) ndaclear
  1292.                 (void);
  1293.  
  1294.     extern      FRETVAL(intf) ndfanlastref
  1295.                 (void);
  1296.  
  1297.     extern      FRETVAL(intf) ndfanaddfds
  1298.                 (intf * dfile, _fcd desc, intf * desclen);
  1299.  
  1300.     extern      FRETVAL(intf) ndfangetfidlen
  1301.                 (intf * dfile, intf * isfirst);
  1302.  
  1303.     extern      FRETVAL(intf) ndfangetfdslen
  1304.                 (intf * dfile, intf * isfirst);
  1305.  
  1306.     extern      FRETVAL(intf) ndfangetfid
  1307.                 (intf * dfile, _fcd id, intf * maxlen, intf * isfirst);
  1308.  
  1309.     extern      FRETVAL(intf) ndfangetfds
  1310.                 (intf * dfile, _fcd id, intf * maxlen, intf * isfirst);
  1311.  
  1312.     extern      FRETVAL(intf) ndaafds
  1313.                 (intf * dfile, _fcd desc, intf * desclen);
  1314.  
  1315.     extern      FRETVAL(intf) ndagfidl
  1316.                 (intf * dfile, intf * isfirst);
  1317.  
  1318.     extern      FRETVAL(intf) ndagfdsl
  1319.                 (intf * dfile, intf * isfirst);
  1320.  
  1321.     extern      FRETVAL(intf) ndagfid
  1322.                 (intf * dfile, _fcd id, intf * maxlen, intf * isfirst);
  1323.  
  1324.     extern      FRETVAL(intf) ndagfds
  1325.                 (intf * dfile, _fcd id, intf * maxlen, intf * isfirst);
  1326.  
  1327.     extern      FRETVAL(intf) ndaiafid
  1328.                 (intf * dfile, _fcd id, intf * idlen);
  1329.  
  1330. /*
  1331.    ** from dfr8F.c
  1332.  */
  1333. #ifndef DFR8_FNAMES
  1334. #   define DFR8_FNAMES
  1335. #ifdef DF_CAPFNAMES
  1336. #   define nd8spal   FNAME(D8SPAL)
  1337. #   define nd8first  FNAME(D8FIRST)
  1338. #   define nd8igdim  FNAME(D8IGDIM)
  1339. #   define nd8igimg  FNAME(D8IGIMG)
  1340. #   define nd8ipimg  FNAME(D8IPIMG)
  1341. #   define nd8iaimg  FNAME(D8IAIMG)
  1342. #   define nd8irref  FNAME(D8IRREF)
  1343. #   define nd8iwref  FNAME(D8IWREF)
  1344. #   define nd8inims  FNAME(D8INIMS)
  1345. #   define nd8lref   FNAME(D8LREF)
  1346. #   define ndfr8lastref      FNAME(DFR8LASTREF)
  1347. #   define ndfr8setpalette   FNAME(DFR8SETPALETTE)
  1348. #   define ndfr8restart  FNAME(DFR8RESTART)
  1349. #   define nd8scomp  FNAME(D8SCOMP)
  1350. #   define ndfr8scompress FNAME(DFR8SCOMPRESS)
  1351. #   define nd8sjpeg  FNAME(D8SJPEG)
  1352. #   define ndfr8sjpeg FNAME(DFR8SJPEG)
  1353. #else                           /* !DF_CAPFNAMES */
  1354. #   define nd8spal   FNAME(d8spal)
  1355. #   define nd8first  FNAME(d8first)
  1356. #   define nd8igdim  FNAME(d8igdim)
  1357. #   define nd8igimg  FNAME(d8igimg)
  1358. #   define nd8ipimg  FNAME(d8ipimg)
  1359. #   define nd8iaimg  FNAME(d8iaimg)
  1360. #   define nd8irref  FNAME(d8irref)
  1361. #   define nd8iwref  FNAME(d8iwref)
  1362. #   define nd8inims  FNAME(d8inims)
  1363. #   define nd8lref   FNAME(d8lref)
  1364. #   define ndfr8lastref      FNAME(dfr8lastref)
  1365. #   define ndfr8setpalette   FNAME(dfr8setpalette)
  1366. #   define ndfr8restart  FNAME(dfr8restart)
  1367. #   define nd8scomp  FNAME(d8scomp)
  1368. #   define ndfr8scompress FNAME(dfr8scompress)
  1369. #   define nd8sjpeg  FNAME(d8sjpeg)
  1370. #   define ndfr8sjpeg FNAME(dfr8sjpeg)
  1371. #endif                          /* DF_CAPFNAMES */
  1372. #endif                          /* DFR8_FNAMES */
  1373.  
  1374.     extern      FRETVAL(intf) nd8spal
  1375.                 (_fcd pal);
  1376.  
  1377.     extern      FRETVAL(intf) nd8first
  1378.                 (void);
  1379.  
  1380.     extern      FRETVAL(intf) nd8igdim
  1381.                 (_fcd filename, intf * xdim, intf * ydim, intf * ispal,
  1382.                  intf * lenfn);
  1383.  
  1384.     extern      FRETVAL(intf) nd8igimg
  1385.                 (_fcd filename, _fcd image, intf * xdim, intf * ydim,
  1386.                  _fcd pal, intf * lenfn);
  1387.  
  1388.     extern      FRETVAL(intf) nd8ipimg
  1389.                 (_fcd filename, _fcd image, intf * xdim, intf * ydim,
  1390.                  intf * compress, intf * lenfn);
  1391.  
  1392.     extern      FRETVAL(intf) nd8iaimg
  1393.                 (_fcd filename, _fcd image, intf * xdim, intf * ydim,
  1394.                  intf * compress, intf * lenfn);
  1395.  
  1396.     extern      FRETVAL(intf) nd8irref
  1397.                 (_fcd filename, intf * ref, intf * fnlen);
  1398.  
  1399.     extern      FRETVAL(intf) nd8iwref
  1400.                 (_fcd filename, intf * ref, intf * fnlen);
  1401.  
  1402.     extern      FRETVAL(intf) nd8inims
  1403.                 (_fcd filename, intf * fnlen);
  1404.  
  1405.     extern      FRETVAL(intf) nd8lref
  1406.                 (void);
  1407.  
  1408.     extern      FRETVAL(intf) ndfr8lastref
  1409.                 (void);
  1410.  
  1411.     extern      FRETVAL(intf) ndfr8setpalette
  1412.                 (_fcd pal);
  1413.  
  1414.     extern      FRETVAL(intf) ndfr8restart
  1415.                 (void);
  1416.  
  1417.     extern      FRETVAL(intf) nd8scomp
  1418.                 (intf * scheme);
  1419.  
  1420.     extern      FRETVAL(intf) ndfr8scompress
  1421.                 (intf * scheme);
  1422.  
  1423.     extern      FRETVAL(intf) nd8sjpeg
  1424.                 (intf * quality, intf * force_baseline);
  1425.  
  1426.     extern      FRETVAL(intf) ndfr8sjpeg
  1427.                 (intf * quality, intf * force_baseline);
  1428.  
  1429. /*
  1430.    ** from dfsdF.c
  1431.  */
  1432. #ifndef DFSD_FNAMES
  1433. #   define DFSD_FNAMES
  1434. #ifdef DF_CAPFNAMES
  1435. #   define ndsgdast  FNAME(DSGDAST)
  1436. #   define ndsgdisc  FNAME(DSGDISC)
  1437. #   define ndsgrang  FNAME(DSGRANG)
  1438. #   define ndssdims  FNAME(DSSDIMS)
  1439. #   define ndssdisc  FNAME(DSSDISC)
  1440. #   define ndssrang  FNAME(DSSRANG)
  1441. #   define ndsclear  FNAME(DSCLEAR)
  1442. #   define ndsslens  FNAME(DSSLENS)
  1443. #   define ndsgdiln  FNAME(DSGDILN)
  1444. #   define ndsgdaln  FNAME(DSGDALN)
  1445. #   define ndsfirst  FNAME(DSFIRST)
  1446. #   define ndspslc   FNAME(DSPSLC)
  1447. #   define ndseslc   FNAME(DSESLC)
  1448. #   define ndsgnt    FNAME(DSGNT)
  1449. #   define ndssnt    FNAME(DSSNT)
  1450. #   define ndsigdim  FNAME(DSIGDIM)
  1451. #   define ndsigdat  FNAME(DSIGDAT)
  1452. #   define ndsipdat  FNAME(DSIPDAT)
  1453. #   define ndsiadat  FNAME(DSIADAT)
  1454. #   define ndsigdas  FNAME(DSIGDAS)
  1455. #   define ndsigslc  FNAME(DSIGSLC)
  1456. #   define ndsigdis  FNAME(DSIGDIS)
  1457. #   define ndsisslc  FNAME(DSISSLC)
  1458. #   define ndsisdas  FNAME(DSISDAS)
  1459. #   define ndsisdis  FNAME(DSISDIS)
  1460. #   define ndsirref  FNAME(DSIRREF)
  1461. #   define ndslref   FNAME(DSLREF)
  1462. #   define ndsinum   FNAME(DSINUM)
  1463. #   define ndsip32s  FNAME(DSIP32S)
  1464. #   define ndsscal   FNAME(DSSCAL)
  1465. #   define ndsgcal   FNAME(DSGCAL)
  1466. #   define ndfsdgetdatastrs  FNAME(DFSDGETDATASTRS)
  1467. #   define ndfsdgetdimscale  FNAME(DFSDGETDIMSCALE)
  1468. #   define ndfsdgetrange     FNAME(DFSDGETRANGE)
  1469. #   define ndfsdsetdims      FNAME(DFSDSETDIMS)
  1470. #   define ndfsdsetdimscale  FNAME(DFSDSETDIMSCALE)
  1471. #   define ndfsdsetrange     FNAME(DFSDSETRANGE)
  1472. #   define ndfsdclear        FNAME(DFSDCLEAR)
  1473. #   define ndfsdsetlengths   FNAME(DFSDSETLENGTHS)
  1474. #   define ndfsdgetdimlen    FNAME(DFSDGETDIMLEN)
  1475. #   define ndfsdgetdatalen   FNAME(DFSDGETDATALEN)
  1476. #   define ndfsdrestart      FNAME(DFSDRESTART)
  1477. #   define ndfsdputslice     FNAME(DFSDPUTSLICE)
  1478. #   define ndfsdendslice     FNAME(DFSDENDSLICE)
  1479. #   define ndfsdsetnt        FNAME(DFSDSETNT)
  1480. #   define ndfsdgetnt        FNAME(DFSDGETNT)
  1481. #   define ndfsdlastref      FNAME(DFSDLASTREF)
  1482. #   define ndsiwref          FNAME(DSIWREF)
  1483. #   define ndssfill          FNAME(DSSFILL)
  1484. #   define ndsgfill          FNAME(DSGFILL)
  1485. #   define ndsisslab         FNAME(DSISSLAB)
  1486. #   define ndswslab          FNAME(DSWSLAB)
  1487. #   define ndseslab          FNAME(DSESLAB)
  1488. #   define ndsirslab         FNAME(DSIRSLAB)
  1489. #else
  1490. #   define ndsgdast  FNAME(dsgdast)
  1491. #   define ndsgdisc  FNAME(dsgdisc)
  1492. #   define ndsgrang  FNAME(dsgrang)
  1493. #   define ndssdims  FNAME(dssdims)
  1494. #   define ndssdisc  FNAME(dssdisc)
  1495. #   define ndssrang  FNAME(dssrang)
  1496. #   define ndsclear  FNAME(dsclear)
  1497. #   define ndsslens  FNAME(dsslens)
  1498. #   define ndsgdiln  FNAME(dsgdiln)
  1499. #   define ndsgdaln  FNAME(dsgdaln)
  1500. #   define ndsfirst  FNAME(dsfirst)
  1501. #   define ndspslc   FNAME(dspslc)
  1502. #   define ndseslc   FNAME(dseslc)
  1503. #   define ndsgnt    FNAME(dsgnt)
  1504. #   define ndssnt    FNAME(dssnt)
  1505. #   define ndsigdim  FNAME(dsigdim)
  1506. #   define ndsigdat  FNAME(dsigdat)
  1507. #   define ndsipdat  FNAME(dsipdat)
  1508. #   define ndsiadat  FNAME(dsiadat)
  1509. #   define ndsigdas  FNAME(dsigdas)
  1510. #   define ndsigslc  FNAME(dsigslc)
  1511. #   define ndsigdis  FNAME(dsigdis)
  1512. #   define ndsisslc  FNAME(dsisslc)
  1513. #   define ndsisdas  FNAME(dsisdas)
  1514. #   define ndsisdis  FNAME(dsisdis)
  1515. #   define ndsirref  FNAME(dsirref)
  1516. #   define ndslref   FNAME(dslref)
  1517. #   define ndsinum   FNAME(dsinum)
  1518. #   define ndsip32s  FNAME(dsip32s)
  1519. #   define ndsscal   FNAME(dsscal)
  1520. #   define ndsgcal   FNAME(dsgcal)
  1521. #   define ndfsdgetdatastrs  FNAME(dfsdgetdatastrs)
  1522. #   define ndfsdgetdimscale  FNAME(dfsdgetdimscale)
  1523. #   define ndfsdgetrange     FNAME(dfsdgetrange)
  1524. #   define ndfsdsetdims      FNAME(dfsdsetdims)
  1525. #   define ndfsdsetdimscale  FNAME(dfsdsetdimscale)
  1526. #   define ndfsdsetrange     FNAME(dfsdsetrange)
  1527. #   define ndfsdclear        FNAME(dfsdclear)
  1528. #   define ndfsdsetlengths   FNAME(dfsdsetlengths)
  1529. #   define ndfsdgetdimlen    FNAME(dfsdgetdimlen)
  1530. #   define ndfsdgetdatalen   FNAME(dfsdgetdatalen)
  1531. #   define ndfsdrestart      FNAME(dfsdrestart)
  1532. #   define ndfsdputslice     FNAME(dfsdputslice)
  1533. #   define ndfsdendslice     FNAME(dfsdendslice)
  1534. #   define ndfsdsetnt        FNAME(dfsdsetnt)
  1535. #   define ndfsdgetnt        FNAME(dfsdgetnt)
  1536. #   define ndfsdlastref      FNAME(dfsdlastref)
  1537. #   define ndsiwref          FNAME(dsiwref)
  1538. #   define ndssfill          FNAME(dssfill)
  1539. #   define ndsgfill          FNAME(dsgfill)
  1540. #   define ndsisslab         FNAME(dsisslab)
  1541. #   define ndswslab          FNAME(dswslab)
  1542. #   define ndseslab          FNAME(dseslab)
  1543. #   define ndsirslab         FNAME(dsirslab)
  1544. #endif                          /* DF_CAPFNAMES */
  1545. #endif                          /* DFSD_FNAMES */
  1546.  
  1547.     extern      FRETVAL(intf) ndsgdisc
  1548.                 (intf * dim, intf * maxsize, void * scale);
  1549.  
  1550.     extern      FRETVAL(intf) ndsgrang
  1551.                 (void * pmax, void * pmin);
  1552.  
  1553.     extern      FRETVAL(intf) ndssdims
  1554.                 (intf * rank, intf dimsizes[]);
  1555.  
  1556.     extern      FRETVAL(intf) ndssdisc
  1557.                 (intf * dim, intf * dimsize, void * scale);
  1558.  
  1559.     extern      FRETVAL(intf) ndssrang
  1560.                 (void * max, void * min);
  1561.  
  1562.     extern      FRETVAL(intf) ndsclear
  1563.                 (void);
  1564.  
  1565.     extern      FRETVAL(intf) ndsslens
  1566.                 (intf * maxlen_label, intf * maxlen_unit,
  1567.                  intf * maxlen_format, intf * maxlen_coordsys);
  1568.  
  1569.     extern      FRETVAL(intf) ndsgdiln
  1570.                 (intf * dim, intf * llabel, intf * lunit,
  1571.                  intf * lformat);
  1572.  
  1573.     extern      FRETVAL(intf) ndsgdaln
  1574.                 (intf * llabel, intf * lunit, intf * lformat,
  1575.                  intf * lcoordsys);
  1576.  
  1577.     extern      FRETVAL(intf) ndsfirst
  1578.                 (void);
  1579.  
  1580.     extern      FRETVAL(intf) ndspslc
  1581.                 (intf windims[], void * data, intf dims[]);
  1582.  
  1583.     extern      FRETVAL(intf) ndseslc
  1584.                 (void);
  1585.  
  1586.     extern      FRETVAL(intf) ndssnt
  1587.                 (intf * numbertype);
  1588.  
  1589.     extern      FRETVAL(intf) ndsgnt
  1590.                 (intf * pnumbertype);
  1591.  
  1592.     extern      FRETVAL(intf) ndsigdim
  1593.                 (_fcd filename, intf * prank, intf sizes[],
  1594.                  intf * maxrank, intf * lenfn);
  1595.  
  1596.     extern      FRETVAL(intf) ndsigdat
  1597.                 (_fcd filename, intf * rank, intf maxsizes[],
  1598.                  void * data, intf * fnlen);
  1599.  
  1600.     extern      FRETVAL(intf) ndsipdat
  1601.                 (_fcd filename, intf * rank, intf dimsizes[],
  1602.                  void * data, intf * fnlen);
  1603.  
  1604.     extern      FRETVAL(intf) ndsiadat
  1605.                 (_fcd filename, intf * rank, intf dimsizes[],
  1606.                  void * data, intf * fnlen);
  1607.  
  1608.     extern      FRETVAL(intf) ndsigslc
  1609.                 (_fcd filename, intf winst[], intf windims[],
  1610.                  void * data, intf dims[], intf * fnlen);
  1611.  
  1612.     extern      FRETVAL(intf) ndsisslc
  1613.                 (_fcd filename, intf * fnlen);
  1614.  
  1615.     extern      FRETVAL(intf) ndsirref
  1616.                 (_fcd filename, intf * ref, intf * fnlen);
  1617.  
  1618.     extern      FRETVAL(intf) ndslref
  1619.                 (void);
  1620.  
  1621.     extern      FRETVAL(intf) ndsinum
  1622.                 (_fcd filename, intf * len);
  1623.  
  1624.     extern      FRETVAL(intf) ndsip32s
  1625.                 (_fcd filename, intf * ref, intf * ispre32, intf * len);
  1626.  
  1627.     extern      FRETVAL(intf) ndfsdgetdatastrs
  1628.                 (_fcd label, _fcd unit, _fcd format, _fcd coordsys);
  1629.  
  1630.     extern      FRETVAL(intf) ndfsdgetdimstrs
  1631.                 (intf * dim, _fcd label, _fcd unit, _fcd format);
  1632.  
  1633.     extern      FRETVAL(intf) ndfsdgetdimscale
  1634.                 (intf * dim, intf * maxsize, void * scale);
  1635.  
  1636.     extern      FRETVAL(intf) ndfsdgetrange
  1637.                 (void * pmax, void * pmin);
  1638.  
  1639.     extern      FRETVAL(intf) ndfsdsetdims
  1640.                 (intf * rank, intf dimsizes[]);
  1641.  
  1642.     extern      FRETVAL(intf) ndfsdsetdimscale
  1643.                 (intf * dim, intf * dimsize, void * scale);
  1644.  
  1645.     extern      FRETVAL(intf) ndfsdsetrange
  1646.                 (void * max, void * min);
  1647.  
  1648.     extern      FRETVAL(intf) ndfsdclear
  1649.                 (void);
  1650.  
  1651.     extern      FRETVAL(intf) ndfsdsetlengths
  1652.                 (intf * maxlen_label, intf * maxlen_unit,
  1653.                  intf * maxlen_format, intf * maxlen_coordsys);
  1654.  
  1655.     extern      FRETVAL(intf) ndfsdgetdimlen
  1656.                 (intf * dim, intf * llabel, intf * lunit,
  1657.                  intf * lformat);
  1658.  
  1659.     extern      FRETVAL(intf) ndfsdgetdatalen
  1660.                 (intf * llabel, intf * lunit, intf * lformat,
  1661.                  intf * lcoordsys);
  1662.  
  1663.     extern      FRETVAL(intf) ndfsdrestart
  1664.                 (void);
  1665.  
  1666.     extern      FRETVAL(intf) ndfsdputslice
  1667.                 (intf windims[], void * data, intf dims[]);
  1668.  
  1669.     extern      FRETVAL(intf) ndfsdendslice
  1670.                 (void);
  1671.  
  1672.     extern      FRETVAL(intf) ndfsdsetnt
  1673.                 (intf * numbertype);
  1674.  
  1675.     extern      FRETVAL(intf) ndfsdgetnt
  1676.                 (intf * pnumbertype);
  1677.  
  1678.     extern      FRETVAL(intf) ndfsdlastref
  1679.                 (void);
  1680.  
  1681.     extern      FRETVAL(intf) ndsisdis
  1682.                 (intf * dim, _fcd flabel, _fcd funit, _fcd fformat,
  1683.              intf * llabel, intf * lunit, intf * lformat);
  1684.  
  1685.     extern      FRETVAL(intf) ndsigdis
  1686.                 (intf * dim, _fcd label, _fcd unit, _fcd format,
  1687.              intf * llabel, intf * lunit, intf * lformat);
  1688.  
  1689.     extern      FRETVAL(intf) ndsisdas
  1690.                 (_fcd flabel, _fcd funit, _fcd fformat, _fcd fcoordsys,
  1691.             intf * isfortran, intf * llabel, intf * lunit,
  1692.                  intf * lformat, intf * lcoordsys);
  1693.  
  1694.     extern      FRETVAL(intf) ndsigdas
  1695.                 (_fcd label, _fcd unit, _fcd format, _fcd coordsys, intf * llabel,
  1696.              intf * lunit, intf * lformat, intf * lcoord);
  1697.  
  1698.     extern      FRETVAL(intf) ndsscal
  1699.                 (float64 * cal, float64 * cal_err, float64 * ioff,
  1700.                  float64 * ioff_err, intf * cal_type);
  1701.  
  1702.     extern      FRETVAL(intf) ndsgcal
  1703.                 (float64 * cal, float64 * cal_err, float64 * ioff,
  1704.                  float64 * ioff_err, intf * cal_type);
  1705.  
  1706.     extern      FRETVAL(intf) ndswref
  1707.                 (_fcd filename, intf * fnlen, intf * ref);
  1708.  
  1709.     extern      FRETVAL(intf) ndssfill
  1710.                 (void * fill_value);
  1711.  
  1712.     extern      FRETVAL(intf) ndsgfill
  1713.                 (void * fill_value);
  1714.  
  1715.     extern      FRETVAL(intf) ndssslab
  1716.                 (_fcd filename, intf * fnlen);
  1717.  
  1718.     extern      FRETVAL(intf) ndswslab
  1719.                 (intf start[], intf  stride[],
  1720.                  intf  cont[], void * data);
  1721.  
  1722.     extern      FRETVAL(intf) ndseslab
  1723.                 (void);
  1724.  
  1725.     extern    FRETVAL(intf) ndsiwref
  1726.         (_fcd filename, intf * fnlen, intf * ref);
  1727.  
  1728.     extern    FRETVAL(intf) ndsisslab
  1729.         (_fcd filename, intf * fnlen);
  1730.  
  1731.     extern    FRETVAL(intf) ndsirslab
  1732.         (_fcd filename, intf * fnlen, intf start[], intf slab_size[],
  1733.              intf stride[], void * buffer, intf buffer_size[]);
  1734.  
  1735. /*
  1736.    ** from dfpF.c
  1737.  */
  1738.  
  1739. #ifndef DFP_FNAMES
  1740. #   define DFP_FNAMES
  1741. #ifdef DF_CAPFNAMES
  1742. #   define ndpigpal  FNAME(DPIGPAL)
  1743. #   define ndpippal  FNAME(DPIPPAL)
  1744. #   define ndpinpal  FNAME(DPINPAL)
  1745. #   define ndpiwref  FNAME(DPIWREF)
  1746. #   define ndpirref  FNAME(DPIRREF)
  1747. #   define ndprest   FNAME(DPREST)
  1748. #   define ndplref   FNAME(DPLREF)
  1749. #   define ndfprestart   FNAME(DFPRESTART)
  1750. #   define ndfplastref   FNAME(DFPLASTREF)
  1751. #else                           /* !DF_CAPNAMES */
  1752. #   define ndpigpal  FNAME(dpigpal)
  1753. #   define ndpippal  FNAME(dpippal)
  1754. #   define ndpinpal  FNAME(dpinpal)
  1755. #   define ndpiwref  FNAME(dpiwref)
  1756. #   define ndpirref  FNAME(dpirref)
  1757. #   define ndprest   FNAME(dprest)
  1758. #   define ndplref   FNAME(dplref)
  1759. #   define ndfprestart   FNAME(dfprestart)
  1760. #   define ndfplastref   FNAME(dfplastref)
  1761. #endif                          /* DF_CAPFNAMES */
  1762. #endif                          /* DFP_FNAMES */
  1763.  
  1764.     extern      FRETVAL(intf) ndpigpal
  1765.                 (_fcd filename, _fcd pal, intf  * fnlen);
  1766.  
  1767.     extern      FRETVAL(intf) ndpippal
  1768.                 (_fcd filename, _fcd pal, intf  * overwrite, _fcd filemode,
  1769.                  intf  * fnlen);
  1770.  
  1771.     extern      FRETVAL(intf) ndpinpal
  1772.                 (_fcd filename, intf  * fnlen);
  1773.  
  1774.     extern      FRETVAL(intf) ndpirref
  1775.                 (_fcd filename, intf  * ref, intf  * fnlen);
  1776.  
  1777.     extern      FRETVAL(intf) ndpiwref
  1778.                 (_fcd filename, intf  * ref, intf  * fnlen);
  1779.  
  1780.     extern      FRETVAL(intf) ndprest
  1781.                 (void);
  1782.  
  1783.     extern      FRETVAL(intf) ndplref
  1784.                 (void);
  1785.  
  1786.     extern      FRETVAL(intf) ndfprestart
  1787.                 (void);
  1788.  
  1789.     extern      FRETVAL(intf) ndfplastref
  1790.                 (void);
  1791.  
  1792. /*
  1793.    ** from df24F.c
  1794.  */
  1795. #ifndef DF24_FNAMES
  1796. #   define DF24_FNAMES
  1797. #ifdef DF_CAPFNAMES
  1798. #   define nd2reqil  FNAME(D2REQIL)
  1799. #   define ndf24reqil    FNAME(DF24REQIL)
  1800. #   define nd2sdims  FNAME(D2SDIMS)
  1801. #   define ndf24setdims  FNAME(DF24SETDIMS)
  1802. #   define nd2setil  FNAME(D2SETIL)
  1803. #   define ndf24setil    FNAME(DF24SETIL)
  1804. #   define nd2first  FNAME(D2FIRST)
  1805. #   define ndf24restart  FNAME(DF24RESTART)
  1806. #   define nd2igdim  FNAME(D2IGDIM)
  1807. #   define nd2igimg  FNAME(D2IGIMG)
  1808. #   define nd2iaimg  FNAME(D2IAIMG)
  1809. #   define nd2irref  FNAME(D2IRREF)
  1810. #   define nd2inimg  FNAME(D2INIMG)
  1811. #   define nd2lref   FNAME(D2LREF)
  1812. #   define nd2scomp  FNAME(D2SCOMP)
  1813. #   define ndf24scompress FNAME(DF24SCOMPRESS)
  1814. #   define nd2sjpeg  FNAME(D2SJPEG)
  1815. #   define ndf24sjpeg FNAME(DF24SJPEG)
  1816. #else
  1817. #   define nd2reqil  FNAME(d2reqil)
  1818. #   define ndf24reqil    FNAME(df24reqil)
  1819. #   define nd2sdims  FNAME(d2sdims)
  1820. #   define ndf24setdims  FNAME(df24setdims)
  1821. #   define nd2setil  FNAME(d2setil)
  1822. #   define ndf24setil    FNAME(df24setil)
  1823. #   define nd2first  FNAME(d2first)
  1824. #   define ndf24restart  FNAME(df24restart)
  1825. #   define nd2igdim  FNAME(d2igdim)
  1826. #   define nd2igimg  FNAME(d2igimg)
  1827. #   define nd2iaimg  FNAME(d2iaimg)
  1828. #   define nd2irref  FNAME(d2irref)
  1829. #   define nd2inimg  FNAME(d2inimg)
  1830. #   define nd2lref   FNAME(d2lref)
  1831. #   define nd2scomp  FNAME(d2scomp)
  1832. #   define ndf24scompress FNAME(df24scompress)
  1833. #   define nd2sjpeg  FNAME(d2sjpeg)
  1834. #   define ndf24sjpeg FNAME(df24sjpeg)
  1835. #endif                          /* DF_CAPFNAMES */
  1836. #endif                          /* DF24_FNAMES */
  1837.  
  1838.     extern      FRETVAL(intf) nd2reqil
  1839.                 (intf  * il);
  1840.  
  1841.     extern      FRETVAL(intf) nd2sdims
  1842.                 (intf  * xdim, intf  * ydim);
  1843.  
  1844.     extern      FRETVAL(intf) nd2igdim
  1845.                 (_fcd filename, intf  * pxdim, intf  * pydim, intf  * pil,
  1846.                  intf  * fnlen);
  1847.  
  1848.     extern      FRETVAL(intf) nd2igimg
  1849.                 (_fcd filename, _fcd image, intf  * xdim, intf  * ydim,
  1850.                  intf  * fnlen);
  1851.  
  1852.     extern      FRETVAL(intf) nd2iaimg
  1853.                 (_fcd filename, _fcd image, intf  * xdim, intf  * ydim,
  1854.                  intf  * fnlen, intf  * newfile);
  1855.  
  1856.     extern      FRETVAL(intf) nd2setil
  1857.                 (intf  * il);
  1858.  
  1859.     extern      FRETVAL(intf) nd2first
  1860.                 (void);
  1861.  
  1862.     extern      FRETVAL(intf) ndf24reqil
  1863.                 (intf  * il);
  1864.  
  1865.     extern      FRETVAL(intf) ndf24setdims
  1866.                 (intf  * xdim, intf  * ydim);
  1867.  
  1868.     extern      FRETVAL(intf) ndf24setil
  1869.                 (intf  * il);
  1870.  
  1871.     extern      FRETVAL(intf) ndf24restart
  1872.                 (void);
  1873.  
  1874.     extern      FRETVAL(intf) nd2irref
  1875.                 (_fcd filename, intf  * ref, intf  * fnlen);
  1876.  
  1877.     extern      FRETVAL(intf) nd2inimg
  1878.                 (_fcd filename, intf  * fnlen);
  1879.  
  1880.     extern      FRETVAL(intf) nd2lref
  1881.                 (void);
  1882.  
  1883.     extern      FRETVAL(intf) nd2scomp
  1884.                 (intf * scheme);
  1885.  
  1886.     extern      FRETVAL(intf) ndf24scompress
  1887.                 (intf * scheme);
  1888.  
  1889.     extern      FRETVAL(intf) nd2sjpeg
  1890.                 (intf * quality, intf * force_baseline);
  1891.  
  1892.     extern      FRETVAL(intf) ndf24sjpeg
  1893.                 (intf * quality, intf * force_baseline);
  1894.  
  1895. /*
  1896.    ** from dfF.c
  1897.  */
  1898. #ifndef DF_FNAMES
  1899. #   define DF_FNAMES
  1900. #ifdef DF_CAPFNAMES
  1901. #   define ndfiaccess FNAME(DFIACCESS)
  1902. #   define ndfiopen  FNAME(DFIOPEN)
  1903. #   define ndfclose  FNAME(DFCLOSE)
  1904. #   define ndfdesc   FNAME(DFDESC)
  1905. #   define ndfdup    FNAME(DFDUP)
  1906. #   define ndfdel    FNAME(DFDEL)
  1907. #   define ndfstart  FNAME(DFSTART)
  1908. #   define ndfread   FNAME(DFREAD)
  1909. #   define ndfseek   FNAME(DFSEEK)
  1910. #   define ndfwrite  FNAME(DFWRITE)
  1911. #   define ndfupdate FNAME(DFUPDATE)
  1912. #   define ndfget    FNAME(DFGET)
  1913. #   define ndfput    FNAME(DFPUT)
  1914. #   define ndfsfind  FNAME(DFSFIND)
  1915. #   define ndffind   FNAME(DFFIND)
  1916. #   define ndferrno  FNAME(DFERRNO)
  1917. #   define ndfnewref FNAME(DFNEWREF)
  1918. #   define ndfnumber FNAME(DFNUMBER)
  1919. #   define ndfstat   FNAME(DFSTAT)
  1920. #   define ndfiishdf FNAME(DFIISHDF)
  1921. #else                           /* !DF_CAPFNAMES */
  1922. #   define ndfiaccess FNAME(dfiaccess)
  1923. #   define ndfiopen  FNAME(dfiopen)
  1924. #   define ndfclose  FNAME(dfclose)
  1925. #   define ndfdesc   FNAME(dfdesc)
  1926. #   define ndfdup    FNAME(dfdup)
  1927. #   define ndfdel    FNAME(dfdel)
  1928. #   define ndfstart  FNAME(dfstart)
  1929. #   define ndfread   FNAME(dfread)
  1930. #   define ndfseek   FNAME(dfseek)
  1931. #   define ndfwrite  FNAME(dfwrite)
  1932. #   define ndfupdate FNAME(dfupdate)
  1933. #   define ndfget    FNAME(dfget)
  1934. #   define ndfput    FNAME(dfput)
  1935. #   define ndfsfind  FNAME(dfsfind)
  1936. #   define ndffind   FNAME(dffind)
  1937. #   define ndferrno  FNAME(dferrno)
  1938. #   define ndfnewref FNAME(dfnewref)
  1939. #   define ndfnumber FNAME(dfnumber)
  1940. #   define ndfstat   FNAME(dfstat)
  1941. #   define ndfiishdf FNAME(dfiishdf)
  1942. #endif                          /* DF_CAPFNAMES */
  1943. #endif                          /* DF_FNAMES */
  1944.  
  1945.     extern      FRETVAL(intf) ndfiopen
  1946.                 (_fcd name, intf  * acc_mode, intf  * defdds, intf  * namelen);
  1947.  
  1948.     extern      FRETVAL(intf) ndfclose
  1949.                 (intf  * dfile);
  1950.  
  1951.     extern      FRETVAL(intf) ndfdesc
  1952.                 (intf  * dfile, intf  ptr[][4], intf  * begin,
  1953.                  intf  * num);
  1954.  
  1955.     extern      FRETVAL(intf) ndfdup
  1956.                 (intf  * dfile, intf  * tag, intf  * ref, intf  * otag,
  1957.                  intf  * oref);
  1958.  
  1959.     extern      FRETVAL(intf) ndfdel
  1960.                 (intf  * dfile, intf  * tag, intf  * ref);
  1961.  
  1962.     extern      FRETVAL(intf) ndfiaccess
  1963.                 (intf  * dfile, intf  * tag, intf  * ref, _fcd acc_mode, intf  * acclen);
  1964.  
  1965.     extern      FRETVAL(intf) ndfstart
  1966.                 (intf  * dfile, intf  * tag, intf  * ref, char  * acc_mode);
  1967.  
  1968.     extern      FRETVAL(intf) ndfread
  1969.                 (intf  * dfile, _fcd ptr, intf  * len);
  1970.  
  1971.     extern      FRETVAL(intf) ndfseek
  1972.                 (intf  * dfile, intf  * offset);
  1973.  
  1974.     extern      FRETVAL(intf) ndfwrite
  1975.                 (intf  * dfile, _fcd ptr, intf  * len);
  1976.  
  1977.     extern      FRETVAL(intf) ndfupdate
  1978.                 (intf  * dfile);
  1979.  
  1980.     extern      FRETVAL(intf) ndfget
  1981.                 (intf  * dfile, intf  * tag, intf  * ref, _fcd ptr);
  1982.  
  1983.     extern      FRETVAL(intf) ndfput
  1984.                 (intf  * dfile, intf  * tag, intf  * ref, _fcd ptr, intf  * len);
  1985.  
  1986.     extern      FRETVAL(intf) ndfsfind
  1987.                 (intf  * dfile, intf  * tag, intf  * ref);
  1988.  
  1989.     extern      FRETVAL(intf) ndffind
  1990.                 (intf  * dfile, intf  * itag, intf  * iref, intf  * len);
  1991.  
  1992.     extern      FRETVAL(intf) ndferrno
  1993.                 (void);
  1994.  
  1995.     extern      FRETVAL(intf) ndfnewref
  1996.                 (intf  * dfile);
  1997.  
  1998.     extern      FRETVAL(intf) ndfnumber
  1999.                 (intf  * dfile, intf  * tag);
  2000.  
  2001.     extern      FRETVAL(intf) ndfiishdf
  2002.                 (_fcd name, intf  * namelen);
  2003.  
  2004. /*
  2005.    ** from dfutil.c
  2006.  */
  2007.     extern uint16 DFfindnextref
  2008.                 (int32 file_id, uint16 tag, uint16 lref);
  2009.  
  2010. /*
  2011.    ** from dfutilF.c
  2012.  */
  2013. #ifndef DFUTIL_FNAMES
  2014. #   define DFUTIL_FNAMES
  2015. #ifdef DF_CAPFNAMES
  2016. #   define ndfindnr          FNAME(DFINDNR)
  2017. #   define ndffindnextref    FNAME(DFFINDNEXTREF)
  2018. #else
  2019. #   define ndfindnr          FNAME(dfindnr)
  2020. #   define ndffindnextref    FNAME(dffindnextref)
  2021. #endif                          /* DF_CAPFNAMES */
  2022. #endif                          /* DFUTIL_FNAMES */
  2023.  
  2024.     extern      FRETVAL(intf) ndfindnr
  2025.                 (intf  * dfile, intf  * tag, intf  * lref);
  2026.  
  2027.     extern      FRETVAL(intf) ndffindnextref
  2028.                 (intf  * dfile, intf  * tag, intf  * lref);
  2029.  
  2030. /*
  2031.    ** from herrF.c
  2032.  */
  2033. #ifndef HERR_FNAMES
  2034. #   define HERR_FNAMES
  2035. #ifdef DF_CAPFNAMES
  2036. #   define nheprnt   FNAME(HEPRNT)
  2037. #else
  2038. #   define nheprnt   FNAME(heprnt)
  2039. #endif                          /* DF_CAPFNAMES */
  2040. #endif                          /* HERR_FNAMES */
  2041.  
  2042.     extern      FRETVAL(void) nheprnt
  2043.                 (intf  * print_levels);
  2044.  
  2045. /*
  2046.    ** from hfileF.c
  2047.  */
  2048. #ifndef HFILE_FNAMES
  2049. #   define HFILE_FNAMES
  2050. #ifdef DF_CAPFNAMES
  2051. #   define nhiopen   FNAME(HIOPEN)
  2052. #   define nhclose   FNAME(HCLOSE)
  2053. #   define nhnumber  FNAME(HNUMBER)
  2054. #   define nhxisdir  FNAME(HXISDIR)
  2055. #   define nhxiscdir FNAME(HXISCDIR)
  2056. #   define nhddontatexit FNAME(HDDONTATEXIT)
  2057. #   define nhglibverc FNAME(HGLIBVERC)
  2058. #   define nhgfilverc FNAME(HGFILVERC)
  2059.  
  2060. #else
  2061. #   define nhiopen   FNAME(hiopen)
  2062. #   define nhclose   FNAME(hclose)
  2063. #   define nhnumber  FNAME(hnumber)
  2064. #   define nhxisdir  FNAME(hxisdir)
  2065. #   define nhxiscdir FNAME(hxiscdir)
  2066. #   define nhddontatexit FNAME(hddontatexit)
  2067. #   define nhglibverc FNAME(hglibverc)
  2068. #   define nhgfilverc FNAME(hgfilverc)
  2069.  
  2070. #endif                          /* DF_CAPFNAMES */
  2071. #endif                          /* HFILE_FNAMES */
  2072.  
  2073.     extern      FRETVAL(intf) nhiopen
  2074.                 (_fcd name, intf  * acc_mode, intf  * defdds, intf  * namelen);
  2075.  
  2076.     extern      FRETVAL(intf) nhclose
  2077.                 (intf  * file_id);
  2078.  
  2079.     extern    FRETVAL(intf) nhnumber
  2080.         (intf  * file_id, intf  * tag);
  2081.  
  2082.     extern    FRETVAL(intf) nhxisdir
  2083.         (_fcd dir, intf * dirlen);
  2084.  
  2085.     extern    FRETVAL(intf) nhxiscdir
  2086.         (_fcd dir, intf * dirlen);
  2087.  
  2088.     extern      FRETVAL(intf)
  2089.                 nhddontatexit(void);
  2090.  
  2091.     extern      FRETVAL(intf)   
  2092.                 nhglibverc(intf *major_v, intf *minor_v, intf *release,
  2093.                 _fcd string, intf *len);
  2094.  
  2095.     extern      FRETVAL(intf)
  2096.                 nhgfilverc(intf *file_id, intf *major_v, intf *minor_v,
  2097.                 intf *release, _fcd string, intf *len);
  2098.  
  2099.  
  2100.  
  2101.     
  2102. /*
  2103.    ** from dfufp2im.c
  2104.  */
  2105. #ifndef DFUFP2I_FNAMES
  2106. #   define DFUFP2I_FNAMES
  2107. #ifdef DF_CAPFNAMES
  2108. #   define nduif2i       FNAME(DUIF2I)
  2109. #else
  2110. #   define nduif2i       FNAME(duif2i)
  2111. #endif                          /* DF_CAPFNAMES */
  2112. #endif                          /* DFUFP2I_FNAMES */
  2113.  
  2114.     extern      FRETVAL(int) nduif2i
  2115.                 (int32  * hdim, int32  * vdim, float32  * max,
  2116.         float32  * min, float32  hscale[], float32  vscale[],
  2117.                  float32  data[], _fcd palette, _fcd outfile,
  2118.               int  * ct_method, int32  * hres, int32  * vres,
  2119.                  int  * compress, int  * lenfn);
  2120.  
  2121.     extern int  DFUfptoimage
  2122.                 (int32 hdim, int32 vdim, float32 max, float32 min,
  2123.        float32  * hscale, float32  * vscale, float32  * data,
  2124.                  uint8  * palette, char  * outfile, int ct_method,
  2125.                  int32 hres, int32 vres, int compress);
  2126.  
  2127. /* for Multi-file fortran Annotation inteface */
  2128. #ifndef MFAN_FNAMES
  2129. #   define  MFAN_FNAMES
  2130. #ifdef DF_CAPFNAMES
  2131. #  define nafstart      FNAME(AFSTART)
  2132. #  define naffileinfo   FNAME(AFFILEINFO)
  2133. #  define nafend        FNAME(AFEND)
  2134. #  define nafcreate     FNAME(AFCREATE)
  2135. #  define naffcreate    FNAME(AFFCREATE)
  2136. #  define nafselect     FNAME(AFSELECT)
  2137. #  define nafnumann     FNAME(AFNUMANN)
  2138. #  define nafannlist    FNAME(AFANNLIST)
  2139. #  define nafannlen     FNAME(AFANNLEN)
  2140. #  define nafwriteann   FNAME(AFWRITEANN)
  2141. #  define nafreadann    FNAME(AFREADANN)
  2142. #  define nafendaccess  FNAME(AFENDACCESS)
  2143. #  define nafgettagref  FNAME(AFGETTAGREF)
  2144. #  define nafidtagref   FNAME(AFIDTAGREF)
  2145. #  define naftagrefid   FNAME(AFTAGREFID)
  2146. #  define nafatypetag   FNAME(AFATYPETAG)
  2147. #  define naftagatype   FNAME(AFTAGATYPE)
  2148. #else  /* !DF_CAPFNAMES */
  2149. #  define nafstart      FNAME(afstart)
  2150. #  define naffileinfo   FNAME(affileinfo)
  2151. #  define nafend        FNAME(afend)
  2152. #  define nafcreate     FNAME(afcreate)
  2153. #  define naffcreate    FNAME(affcreate)
  2154. #  define nafselect     FNAME(afselect)
  2155. #  define nafnumann     FNAME(afnumann)
  2156. #  define nafannlist    FNAME(afannlist)
  2157. #  define nafannlen     FNAME(afannlen)
  2158. #  define nafwriteann   FNAME(afwriteann)
  2159. #  define nafreadann    FNAME(afreadann)
  2160. #  define nafendaccess  FNAME(afendaccess)
  2161. #  define nafgettagref  FNAME(afgettagref)
  2162. #  define nafidtagref   FNAME(afidtagref)
  2163. #  define naftagrefid   FNAME(aftagrefid)
  2164. #  define nafatypetag   FNAME(afatypetag)
  2165. #  define naftagatype   FNAME(aftagatype)
  2166. #endif /* DF_CAPFNAMES */
  2167. #endif /* MFAN_FNAMES */
  2168.  
  2169. /* Multi-file Annotation C-stubs for fortan interface found in mfanf.c */
  2170.  
  2171. extern FRETVAL(intf)
  2172. nafstart(intf *file_id);
  2173.  
  2174. extern FRETVAL(intf)
  2175. naffileinfo(intf *an_id, intf *num_flabel, intf *num_fdesc, intf *num_olabel,
  2176.             intf *num_odesc);
  2177.  
  2178. extern FRETVAL(intf)
  2179. nafend(intf *an_id);
  2180.  
  2181. extern FRETVAL(intf)
  2182. nafcreate(intf *an_id, intf *etag, intf *eref, intf *atype);
  2183.  
  2184. extern FRETVAL(intf)
  2185. naffcreate(intf *an_id, intf *atype);
  2186.  
  2187. extern FRETVAL(intf)
  2188. nafselect(intf *an_id, intf *index, intf *atype);
  2189.  
  2190. extern FRETVAL(intf)
  2191. nafnumann(intf *an_id, intf *atype, intf *etag, intf *eref);
  2192.  
  2193. extern FRETVAL(intf)
  2194. nafannlist(intf *an_id, intf *atype, intf *etag, intf *eref, intf alist[]);
  2195.  
  2196. extern FRETVAL(intf)
  2197. nafannlen(intf *ann_id);
  2198.  
  2199. extern FRETVAL(intf)
  2200. nafwriteann(intf *ann_id,_fcd ann, intf *annlen);
  2201.  
  2202. extern FRETVAL(intf)
  2203. nafreadann(intf *ann_id,_fcd ann, intf *maxlen);
  2204.  
  2205. extern FRETVAL(intf)
  2206. nafendaccess(intf *ann_id);
  2207.  
  2208. extern FRETVAL(intf)
  2209. nafgettagref(intf *an_id, intf *index, intf *type, intf *tag, intf *ref);
  2210.  
  2211. extern FRETVAL(intf)
  2212. nafidtagref(intf *ann_id, intf *tag, intf *ref);
  2213.  
  2214. extern FRETVAL(intf)
  2215. naftagrefid(intf *an_id, intf *tag, intf *ref);
  2216.  
  2217. extern FRETVAL(intf)
  2218. nafatypetag(intf *atype);
  2219.  
  2220. extern FRETVAL(intf)
  2221. naftagatype(intf *tag);
  2222.  
  2223. /* Multi-file Annotation C-routines found in mfan.c */
  2224. extern int32 ANstart(int32 file_id);
  2225.  
  2226. extern intn  ANfileinfo(int32 an_id, int32 *n_file_label, int32 *n_file_desc,
  2227.                         int32 *n_obj_label, int32 *n_obj_desc);
  2228.  
  2229. extern int32 ANend(int32 an_id);
  2230.  
  2231. extern int32 ANcreate(int32 an_id, uint16 elem_tag, uint16 elem_ref, 
  2232.                       ann_type type);
  2233.  
  2234. extern int32 ANcreatef(int32 an_id, ann_type type);
  2235.  
  2236. extern int32 ANselect(int32 an_id, int32 index, ann_type type);
  2237.  
  2238. extern intn  ANnumann(int32 an_id, ann_type type, uint16 elem_tag, 
  2239.                       uint16 elem_ref);
  2240.  
  2241. extern intn  ANannlist(int32 an_id, ann_type type, uint16 elem_tag, 
  2242.                        uint16 elem_ref, int32 ann_list[]);
  2243.  
  2244. extern int32 ANannlen(int32 ann_id);
  2245.  
  2246. extern int32 ANwriteann(int32 ann_id, const char *ann, int32 annlen);
  2247.  
  2248. extern int32 ANreadann(int32 ann_id, char *ann, int32 maxlen);
  2249.  
  2250. extern intn  ANendaccess(int32 ann_id);
  2251.  
  2252. extern int32 ANget_tagref(int32 an_id, int32 index, ann_type type,
  2253.                           uint16 *ann_tag, uint16 *ann_ref);
  2254.  
  2255. extern int32 ANid2tagref(int32 an_id, uint16 *ann_tag, uint16 *ann_ref);
  2256.  
  2257. extern int32 ANtagref2id(int32 an_id, uint16 ann_tag, uint16 ann_ref);
  2258.  
  2259. extern uint16 ANatype2tag(ann_type atype);
  2260.  
  2261. extern ann_type ANtag2atype(uint16 atag);
  2262.  
  2263. extern intn ANdestroy(void);
  2264.  
  2265. /* for Multi-file fortran GR interface */
  2266. #ifndef MFGR_FNAMES
  2267. #   define  MFGR_FNAMES
  2268. #ifdef DF_CAPFNAMES
  2269. #  define nmgstart      FNAME(MGSTART)
  2270. #  define nmgfinfo      FNAME(MGFINFO)
  2271. #  define nmgend        FNAME(MGEND)
  2272. #  define nmgicreat     FNAME(MGICREAT)
  2273. #  define nmgselct      FNAME(MGSELCT)
  2274. #  define nmgin2ndx     FNAME(MGIN2NDX)
  2275. #  define nmggiinf      FNAME(MGGIINF)
  2276. #  define nmgwcimg      FNAME(MGWCIMG)
  2277. #  define nmgrcimg      FNAME(MGRCIMG)
  2278. #  define nmgwrimg      FNAME(MGWRIMG)
  2279. #  define nmgrdimg      FNAME(MGRDIMG)
  2280. #  define nmgendac      FNAME(MGENDAC)
  2281. #  define nmgid2rf      FNAME(MGID2RF)
  2282. #  define nmgr2idx      FNAME(MGR2IDX)
  2283. #  define nmgrltil      FNAME(MGRLTIL)
  2284. #  define nmgrimil      FNAME(MGRIMIL)
  2285. #  define nmggltid      FNAME(MGGLTID)
  2286. #  define nmgglinf      FNAME(MGGLINF)
  2287. #  define nmgwrlut      FNAME(MGWRLUT)
  2288. #  define nmgwclut      FNAME(MGWCLUT)
  2289. #  define nmgrdlut      FNAME(MGRDLUT)
  2290. #  define nmgrclut      FNAME(MGRCLUT)
  2291. #  define nmgisxfil     FNAME(MGISXFIL)
  2292. #  define nmgssctp      FNAME(MGSACTP)
  2293. #  define nmgiscatt     FNAME(MGISCATT)
  2294. #  define nmgisattr     FNAME(MGISATTR)
  2295. #  define nmgatinf      FNAME(MGATINF)
  2296. #  define nmggcatt      FNAME(MGGCATT)
  2297. #  define nmggnatt      FNAME(MGGNATT)
  2298. #  define nmggattr      FNAME(MGGATTR)
  2299. #  define nmgifndat     FNAME(MGIFNDAT)
  2300. # define nmgcgichnk        FNAME(MGCGICHNK)
  2301. # define nmgcrcchnk        FNAME(MGCRCCHNK)
  2302. # define nmgcrchnk         FNAME(MGCRCHNK)
  2303. # define nmgcscchnk        FNAME(MGCSCCHNK)
  2304. # define nmgcschnk         FNAME(MGCSCHNK)
  2305. # define nmgcwcchnk        FNAME(MGCWCCHNK)
  2306. # define nmgcwchnk         FNAME(MGCWCHNK)
  2307. # define nmgcscompress     FNAME(MGCSCOMPRESS)
  2308. # define nmglt2rf         FNAME(MGLT2RF)
  2309. #else  /* !DF_CAPFNAMES */
  2310. #  define nmgstart      FNAME(mgstart)
  2311. #  define nmgfinfo      FNAME(mgfinfo)
  2312. #  define nmgend        FNAME(mgend)
  2313. #  define nmgicreat     FNAME(mgicreat)
  2314. #  define nmgselct      FNAME(mgselct)
  2315. #  define nmgin2ndx     FNAME(mgin2ndx)
  2316. #  define nmggiinf      FNAME(mggiinf)
  2317. #  define nmgwcimg      FNAME(mgwcimg)
  2318. #  define nmgrcimg      FNAME(mgrcimg)
  2319. #  define nmgwrimg      FNAME(mgwrimg)
  2320. #  define nmgrdimg      FNAME(mgrdimg)
  2321. #  define nmgendac      FNAME(mgendac)
  2322. #  define nmgid2rf      FNAME(mgid2rf)
  2323. #  define nmgr2idx      FNAME(mgr2idx)
  2324. #  define nmgrltil      FNAME(mgrltil)
  2325. #  define nmgrimil      FNAME(mgrimil)
  2326. #  define nmggltid      FNAME(mggltid)
  2327. #  define nmgglinf      FNAME(mgglinf)
  2328. #  define nmgwrlut      FNAME(mgwrlut)
  2329. #  define nmgwclut      FNAME(mgwclut)
  2330. #  define nmgrdlut      FNAME(mgrdlut)
  2331. #  define nmgrclut      FNAME(mgrclut)
  2332. #  define nmgisxfil     FNAME(mgisxfil)
  2333. #  define nmgssctp      FNAME(mgsactp)
  2334. #  define nmgiscatt     FNAME(mgiscatt)
  2335. #  define nmgisattr     FNAME(mgisattr)
  2336. #  define nmgatinf      FNAME(mgatinf)
  2337. #  define nmggcatt      FNAME(mggcatt)
  2338. #  define nmggnatt      FNAME(mggnatt)
  2339. #  define nmggattr      FNAME(mggattr)
  2340. #  define nmgifndat     FNAME(mgifndat)
  2341. # define nmgcgichnk        FNAME(mgcgichnk)
  2342. # define nmgcrcchnk        FNAME(mgcrcchnk)
  2343. # define nmgcrchnk         FNAME(mgcrchnk)
  2344. # define nmgcscchnk        FNAME(mgcscchnk)
  2345. # define nmgcschnk         FNAME(mgcschnk)
  2346. # define nmgcwcchnk        FNAME(mgcwcchnk)
  2347. # define nmgcwchnk         FNAME(mgcwchnk)
  2348. # define nmgcscompress     FNAME(mgcscompress)
  2349. # define nmglt2rf         FNAME(mglt2rf)
  2350.  
  2351. #endif /* DF_CAPFNAMES */
  2352. #endif /* MFGR_FNAMES */
  2353.  
  2354. /* Multi-file GR C-stubs for FORTRAN interface found in mfgrf.c */
  2355.  
  2356. extern FRETVAL(intf)
  2357. nmgstart(intf * fid);
  2358.  
  2359. extern FRETVAL(intf)
  2360. nmgfinfo(intf * grid,intf *n_datasets,intf *n_attrs);
  2361.  
  2362. extern FRETVAL(intf)
  2363. nmgend(intf * grid);
  2364.  
  2365. extern FRETVAL(intf)
  2366. nmgicreat(intf * grid, _fcd name, intf *ncomp, intf *nt, intf *il, intf dimsizes[2], intf *nlen);
  2367.  
  2368. extern FRETVAL(intf)
  2369. nmgselct(intf * grid, intf *index);
  2370.  
  2371. extern FRETVAL(intf)
  2372. nmgin2ndx(intf * grid, _fcd name, intf *nlen);
  2373.  
  2374. extern FRETVAL(intf)
  2375. nmggiinf(intf * riid, _fcd name, intf *ncomp, intf *nt, intf *il, intf *dimsizes, intf *nattr);
  2376.  
  2377.  
  2378. extern FRETVAL(intf)
  2379. nmgwcimg(intf * riid, intf *start, intf *stride, intf *count, _fcd data);
  2380.  
  2381. extern FRETVAL(intf)
  2382. nmgrcimg(intf * riid, intf *start, intf *stride, intf *count, _fcd data);
  2383.  
  2384. extern FRETVAL(intf)
  2385. nmgwrimg(intf * riid, intf *start, intf *stride, intf *count, void * data);
  2386.  
  2387. extern FRETVAL(intf)
  2388. nmgrdimg(intf * riid, intf *start, intf *stride, intf *count, void * data);
  2389.  
  2390. extern FRETVAL(intf)
  2391. nmgendac(intf * riid);
  2392.  
  2393. extern FRETVAL(intf)
  2394. nmgid2rf(intf * riid);
  2395.  
  2396. extern FRETVAL(intf)
  2397. nmgr2idx(intf * grid, intf *ref);
  2398.  
  2399. extern FRETVAL(intf)
  2400. nmgrltil(intf * riid, intf *il);
  2401.  
  2402. extern FRETVAL(intf)
  2403. nmgrimil(intf * riid, intf *il);
  2404.  
  2405. extern FRETVAL(intf)
  2406. nmggltid(intf * riid, intf *lut_index);
  2407.  
  2408. extern FRETVAL(intf)
  2409. nmgglinf(intf * lutid, intf *ncomp, intf *nt, intf *il, intf *nentries);
  2410.  
  2411. extern FRETVAL(intf)
  2412. nmgwrlut(intf * lutid, intf *ncomp, intf *nt, intf *il, intf *nentries, void * data);
  2413.  
  2414. extern FRETVAL(intf)
  2415. nmgwclut(intf * lutid, intf *ncomp, intf *nt, intf *il, intf *nentries, _fcd data);
  2416.  
  2417. extern FRETVAL(intf)
  2418. nmgrdlut(intf * lutid, void * data);
  2419.  
  2420. extern FRETVAL(intf)
  2421. nmgrclut(intf * lutid, _fcd data);
  2422.  
  2423. extern FRETVAL(intf)
  2424. nmgisxfil(intf * riid, _fcd filename, intf *offset, intf *nlen);
  2425.  
  2426. extern FRETVAL(intf)
  2427. nmgsactp(intf * riid, intf *accesstype);
  2428.  
  2429. extern FRETVAL(intf)
  2430. nmgiscatt(intf * riid, _fcd name, intf *nt, intf *count, _fcd data, intf *nlen);
  2431.  
  2432. extern FRETVAL(intf)
  2433. nmgisattr(intf * riid, _fcd name, intf *nt, intf *count, void * data, intf *nlen);
  2434.  
  2435. extern FRETVAL(intf)
  2436. nmgatinf(intf * riid, intf *index, _fcd name, intf *nt, intf *count);
  2437.  
  2438. extern FRETVAL(intf)
  2439. nmggcatt(intf * riid, intf *index, _fcd data);
  2440.  
  2441. extern FRETVAL(intf)
  2442. nmggnatt(intf * riid, intf *index, void * data);
  2443.  
  2444. extern FRETVAL(intf)
  2445. nmggattr(intf * riid, intf *index, void * data);
  2446.  
  2447. extern FRETVAL(intf)
  2448. nmgifndat(intf * riid, _fcd name, intf *nlen);
  2449.  
  2450.      extern FRETVAL (intf)
  2451.      nmgcgichnk(intf *id, intf *dim_length, intf *flags);
  2452.  
  2453.     extern FRETVAL (intf)
  2454.        nmgcrcchnk(intf *id, intf *start, _fcd char_data);
  2455.  
  2456.     extern FRETVAL (intf)
  2457.        nmgcrchnk(intf *id, intf *start, VOIDP num_data);
  2458.  
  2459.     extern FRETVAL (intf)
  2460.        nmgcscchnk(intf *id, intf *maxcache, intf *flags);
  2461.  
  2462.     extern FRETVAL (intf)
  2463.       nmgcschnk(intf *id, intf *dim_length, intf *comp_type,
  2464.                 intf *comp_prm);
  2465.     extern FRETVAL (intf)
  2466.        nmgcwcchnk(intf *id, intf *start, _fcd char_data);
  2467.  
  2468.     extern FRETVAL (intf)
  2469.        nmgcwchnk(intf *id, intf *start, VOIDP num_data);
  2470.  
  2471.     extern FRETVAL (intf)
  2472.        nmgcscompress(intf *id, intf *comp_type, intf *comp_prm);
  2473.  
  2474.     extern FRETVAL (intf)
  2475.        nmglt2rf(intf *id);
  2476.  
  2477. /* Multi-file Raster C-routines found in mfgr.c */
  2478. extern intn rigcompare(void * k1, void * k2, intn cmparg);
  2479.  
  2480. extern int32 GRstart(int32 hdf_file_id);
  2481.  
  2482. extern intn GRfileinfo(int32 grid,int32 *n_datasets,int32 *n_attrs);
  2483.  
  2484. extern intn GRend(int32 grid);
  2485.  
  2486. extern int32 GRcreate(int32 grid,const char *name,int32 ncomp,int32 nt,int32 il,
  2487.     int32 dimsizes[2]);
  2488.  
  2489. extern int32 GRselect(int32 grid,int32 index);
  2490.  
  2491. extern int32 GRnametoindex(int32 grid,const char *name);
  2492.  
  2493. extern intn GRgetiminfo(int32 riid,char *name,int32 *ncomp,int32 *nt,int32 *il,
  2494.     int32 dimsizes[2],int32 *n_attr);
  2495.  
  2496. extern intn GRwriteimage(int32 riid,int32 start[2],int32 stride[2],
  2497.     int32 count[2],void * data);
  2498.  
  2499. extern intn GRreadimage(int32 riid,int32 start[2],int32 stride[2],
  2500.     int32 count[2],void * data);
  2501.  
  2502. extern intn GRendaccess(int32 riid);
  2503.  
  2504. extern uint16 GRidtoref(int32 riid);
  2505.  
  2506. extern int32 GRreftoindex(int32 grid,uint16 ref);
  2507.  
  2508. extern intn GRreqlutil(int32 riid,intn il);
  2509.  
  2510. extern intn GRreqimageil(int32 riid,intn il);
  2511.  
  2512. extern int32 GRgetlutid(int32 riid,int32 index);
  2513.  
  2514. extern uint16 GRluttoref(int32 lutid);
  2515.  
  2516. extern intn GRgetlutinfo(int32 riid,int32 *ncomp,int32 *nt,
  2517.     int32 *il,int32 *nentries);
  2518.  
  2519. extern intn GRwritelut(int32 riid,int32 ncomps,int32 nt,
  2520.     int32 il,int32 nentries,void * data);
  2521.  
  2522. extern intn GRreadlut(int32 lutid,void * data);
  2523.  
  2524. extern intn GRsetexternalfile(int32 riid,const char *filename,int32 offset);
  2525.  
  2526. extern intn GRsetaccesstype(int32 riid,uintn accesstype);
  2527.  
  2528. extern intn GRsetcompress(int32 riid,int32 comp_type,comp_info *cinfo);
  2529.  
  2530. extern intn GRsetattr(int32 id,const char *name,int32 attr_nt,int32 count,const void * data);
  2531.  
  2532. extern intn GRattrinfo(int32 id,int32 index,char *name,int32 *attr_nt,int32 *count);
  2533.  
  2534. extern intn GRgetattr(int32 id,int32 index,void * data);
  2535.  
  2536. extern int32 GRfindattr(int32 id,const char *name);
  2537.  
  2538. extern intn GRPshutdown(void);
  2539.  
  2540. /*=== HDF_CHUNK_DEF same as in mfhdf.h - moved here  ====*/
  2541.  
  2542. /* Bit flags used for SDsetchunk(), SDgetchunkinfo() 
  2543.    GRsetchunk() and GRgetchunkinfo(). Note that GRs do not support NBIT */
  2544. #define HDF_NONE    0x0
  2545. #define HDF_CHUNK   0x1
  2546. #define HDF_COMP    0x3
  2547. #define HDF_NBIT    0x5
  2548.  
  2549. /* Cache flags */
  2550. #define HDF_CACHEALL 0x1
  2551.  
  2552. /* Chunk Defintion, Note that GRs need only 2 dimensions for the chunk_lengths */
  2553. typedef union hdf_chunk_def_u
  2554. {
  2555.     /* Chunk Lengths only */
  2556.     int32   chunk_lengths[MAX_VAR_DIMS]; /* chunk lengths along each dimension */
  2557.  
  2558.     struct 
  2559.     {   /* For Compression info */
  2560.         int32      chunk_lengths[MAX_VAR_DIMS]; /* chunk lengths along each dimension */
  2561.         int32      comp_type;    /* Compression type */
  2562.         int32      model_type;   /* Compression model type */
  2563.         comp_info  cinfo;        /* Compression info struct */
  2564.         model_info minfo;        /* Compression model info struct */
  2565.     }comp;
  2566.         
  2567.     struct 
  2568.     { /* For NBIT, Used by SDS and not by GR */
  2569.         int32 chunk_lengths[MAX_VAR_DIMS]; /* chunk lengths along each dimension */
  2570.         intn  start_bit; /* offset of the start bit in the data */
  2571.         intn  bit_len;   /* number of bits to store */
  2572.         intn  sign_ext;  /* whether to sign extend or not */
  2573.         intn  fill_one;  /* whether to fill with 1's or not (0's) */
  2574.     } nbit;
  2575.  
  2576. } HDF_CHUNK_DEF;
  2577.  
  2578. /*=== GR Chunking Routines  ====*/
  2579.  
  2580. /******************************************************************************
  2581.  NAME
  2582.       GRsetchunk   -- make GR a chunked GR
  2583.  
  2584.  DESCRIPTION
  2585.       This routine makes the GR a chunked GR according to the chunk
  2586.       definition passed in.
  2587.  
  2588.       The image currently cannot be special already.  i.e. NBIT,
  2589.       COMPRESSED, or EXTERNAL. This is an Error.
  2590.  
  2591.       The defintion of the HDF_CHUNK_DEF union with relvant fields is:
  2592.  
  2593.       typedef union hdf_chunk_def_u
  2594.       {
  2595.          int32   chunk_lengths[2];  Chunk lengths along each dimension
  2596.  
  2597.          struct 
  2598.           {   
  2599.             int32     chunk_lengths[2]; Chunk lengths along each dimension
  2600.             int32     comp_type;                   Compression type 
  2601.             comp_info cinfo;                       Compression info struct 
  2602.           }comp;
  2603.  
  2604.       } HDF_CHUNK_DEF
  2605.  
  2606.       The simplist is the 'chunk_lengths' array specifiying chunk 
  2607.       lengths for each dimension where the 'flags' argument set to 
  2608.       'HDF_CHUNK';
  2609.  
  2610.       COMPRESSION is set by using the 'HDF_CHUNK_DEF' structure to set the
  2611.       appropriate compression information along with the required chunk lengths
  2612.       for each dimension. The compression information is the same as 
  2613.       that set in 'SDsetcompress()'. The bit-or'd'flags' argument' is set to 
  2614.       'HDF_CHUNK | HDF_COMP'.
  2615.  
  2616.       See the example in pseudo-C below for further usage.
  2617.  
  2618.       The maximum number of Chunks in an HDF file is 65,535.
  2619.  
  2620.       The performance of the GRxxx interface with chunking is greatly
  2621.       affected by the users access pattern over the image and by
  2622.       the maximum number of chunks set in the chunk cache. The cache contains 
  2623.       the Least Recently Used(LRU cache replacment policy) chunks. See the
  2624.       routine GRsetchunkcache() for further info on the chunk cache and how 
  2625.       to set the maximum number of chunks in the chunk cache. A default chunk 
  2626.       cache is always created.
  2627.  
  2628.       The following example shows the organization of chunks for a 2D iamge.
  2629.       e.g. 4x4 image with 2x2 chunks. The array shows the layout of
  2630.            chunks in the chunk array.
  2631.  
  2632.             4 ---------------------                                           
  2633.               |         |         |                                                 
  2634.         Y     |  (0,1)  |  (1,1)  |                                       
  2635.         ^     |         |         |                                      
  2636.         |   2 ---------------------                                       
  2637.         |     |         |         |                                               
  2638.         |     |  (0,0)  |  (1,0)  |                                      
  2639.         |     |         |         |                                           
  2640.         |     ---------------------                                         
  2641.         |     0         2         4                                       
  2642.         ---------------> X                                                       
  2643.                                                                                 
  2644.         --Without compression--:
  2645.         {                                                                    
  2646.         HDF_CHUNK_DEF chunk_def;
  2647.                                                                             
  2648.         .......                                                                    
  2649.         -- Set chunk lengths --                                                    
  2650.         chunk_def.chunk_lengths[0]= 2;                                                     
  2651.         chunk_def.chunk_lengths[1]= 2; 
  2652.  
  2653.         -- Set Chunking -- 
  2654.         GRsetchunk(riid, chunk_def, HDF_CHUNK);                      
  2655.          ......                                                                  
  2656.         }                                                                           
  2657.  
  2658.         --With compression--:
  2659.         {                                                                    
  2660.         HDF_CHUNK_DEF chunk_def;
  2661.                                                                             
  2662.         .......                
  2663.         -- Set chunk lengths first --                                                    
  2664.         chunk_def.chunk_lengths[0]= 2;                                                     
  2665.         chunk_def.chunk_lengths[1]= 2;
  2666.  
  2667.         -- Set compression --
  2668.         chunk_def.comp.cinfo.deflate.level = 9;
  2669.         chunk_def.comp.comp_type = COMP_CODE_DEFLATE;
  2670.  
  2671.         -- Set Chunking with Compression --
  2672.         GRsetchunk(riid, chunk_def, HDF_CHUNK | HDF_COMP);                      
  2673.          ......                                                                  
  2674.         }                                                                           
  2675.  
  2676.  RETURNS
  2677.         SUCCEED/FAIL
  2678. ******************************************************************************/
  2679. extern intn GRsetchunk
  2680.     (int32 riid,             /* IN: raster access id */
  2681.      HDF_CHUNK_DEF chunk_def, /* IN: chunk definition */
  2682.      int32 flags              /* IN: flags */);
  2683.  
  2684. /******************************************************************************
  2685.  NAME
  2686.      GRgetchunkinfo -- get Info on GR
  2687.  
  2688.  DESCRIPTION
  2689.      This routine gets any special information on the GR. If its chunked,
  2690.      chunked and compressed or just a regular GR. Currently it will only
  2691.      fill the array of chunk lengths for each dimension as specified in
  2692.      the 'HDF_CHUNK_DEF' union. You can pass in a NULL for 'chunk_def'
  2693.      if don't want the chunk lengths for each dimension.
  2694.      Additionaly if successfull it will return a bit-or'd value in 'flags' 
  2695.      indicating if the GR is:
  2696.  
  2697.      Chunked                  -> flags = HDF_CHUNK
  2698.      Chunked and compressed   -> flags = HDF_CHUNK | HDF_COMP 
  2699.      Non-chunked              -> flags = HDF_NONE
  2700.   
  2701.      e.g. 4x4 array - Pseudo-C
  2702.      {
  2703.      int32   rcdims[3];
  2704.      HDF_CHUNK_DEF rchunk_def;
  2705.      int32   cflags;
  2706.      ...
  2707.      rchunk_def.chunk_lengths = rcdims;
  2708.      GRgetchunkinfo(riid, &rchunk_def, &cflags);
  2709.      ...
  2710.      }
  2711.  
  2712.  RETURNS
  2713.         SUCCEED/FAIL
  2714. ******************************************************************************/
  2715. extern intn GRgetchunkinfo
  2716.     (int32 riid,              /* IN: Raster access id */
  2717.      HDF_CHUNK_DEF *chunk_def, /* IN/OUT: chunk definition */
  2718.      int32 *flags              /* IN/OUT: flags */);
  2719.  
  2720. #if 0 /* commented out for now -GV */
  2721.  
  2722. /******************************************************************************
  2723.  NAME
  2724.      GRwritechunk  -- write the specified chunk to the GR
  2725.  
  2726.  DESCRIPTION
  2727.      This routine writes a whole chunk of data to the chunked GR 
  2728.      specified by chunk 'origin' for the given GR and can be used
  2729.      instead of GRwriteimage() when this information is known. This
  2730.      routine has less overhead and is much faster than using GRwriteimage().
  2731.  
  2732.      Origin specifies the co-ordinates of the chunk according to the chunk
  2733.      position in the overall chunk array.
  2734.  
  2735.      'datap' must point to a whole chunk of data.
  2736.  
  2737.      See GRsetchunk() for a description of the organization of chunks in an GR.
  2738.  
  2739.  RETURNS
  2740.         SUCCEED/FAIL
  2741. ******************************************************************************/
  2742. extern intn GRwritechunk
  2743.     (int32 riid,      /* IN: raster access id */
  2744.      int32 *origin,    /* IN: origin of chunk to write */
  2745.      const void *datap /* IN: buffer for data */);
  2746.  
  2747. /******************************************************************************
  2748.  NAME
  2749.      GRreadchunk   -- read the specified chunk to the GR
  2750.  
  2751.  DESCRIPTION
  2752.      This routine reads a whole chunk of data from the chunked GR
  2753.      specified by chunk 'origin' for the given GR and can be used
  2754.      instead of GRreadimage() when this information is known. This
  2755.      routine has less overhead and is much faster than using GRreadimage().
  2756.  
  2757.      Origin specifies the co-ordinates of the chunk according to the chunk
  2758.      position in the overall chunk array.
  2759.  
  2760.      'datap' must point to a whole chunk of data.
  2761.  
  2762.      See GRsetchunk() for a description of the organization of chunks in an GR.
  2763.  
  2764.  RETURNS
  2765.         SUCCEED/FAIL
  2766. ******************************************************************************/
  2767. extern intn GRreadchunk
  2768.     (int32 riid,      /* IN: raster access id */
  2769.      int32 *origin,    /* IN: origin of chunk to read */
  2770.      void  *datap      /* IN/OUT: buffer for data */);
  2771.  
  2772. #endif /* commented out for now -GV */
  2773.  
  2774. /******************************************************************************
  2775. NAME
  2776.      GRsetchunkcache -- maximum number of chunks to cache 
  2777.  
  2778. DESCRIPTION
  2779.      Set the maximum number of chunks to cache.
  2780.  
  2781.      The cache contains the Least Recently Used(LRU cache replacment policy) 
  2782.      chunks. This routine allows the setting of maximum number of chunks that 
  2783.      can be cached, 'maxcache'.
  2784.  
  2785.      The performance of the GRxxx interface with chunking is greatly
  2786.      affected by the users access pattern over the image and by
  2787.      the maximum number of chunks set in the chunk cache. The number chunks 
  2788.      that can be set in the cache is process memory limited. It is a good 
  2789.      idea to always set the maximum number of chunks in the cache as the 
  2790.      default heuristic does not take into account the memory available for 
  2791.      the application.
  2792.  
  2793.      By default when the GR is promoted to a chunked element the 
  2794.      maximum number of chunks in the cache 'maxcache' is set to the number of
  2795.      chunks along the last dimension.
  2796.  
  2797.      The values set here affects the current object's caching behaviour.
  2798.  
  2799.      If the chunk cache is full and 'maxcache' is greater then the
  2800.      current 'maxcache' value, then the chunk cache is reset to the new
  2801.      'maxcache' value, else the chunk cache remains at the current
  2802.      'maxcache' value.
  2803.  
  2804.      If the chunk cache is not full, then the chunk cache is set to the
  2805.      new 'maxcache' value only if the new 'maxcache' value is greater than the
  2806.      current number of chunks in the cache.
  2807.  
  2808.      Use flags argument of 'HDF_CACHEALL' if the whole object is to be cached 
  2809.      in memory, otherwise pass in zero(0). Currently you can only
  2810.      pass in zero.
  2811.  
  2812.     See GRsetchunk() for a description of the organization of chunks in an GR.
  2813.  
  2814. RETURNS
  2815.      Returns the 'maxcache' value for the chunk cache if successful 
  2816.      and FAIL otherwise
  2817. ******************************************************************************/
  2818. extern intn GRsetchunkcache
  2819.     (int32 riid,     /* IN: raster access id */
  2820.      int32 maxcache,  /* IN: max number of chunks to cache */
  2821.      int32 flags      /* IN: flags = 0, HDF_CACHEALL */);
  2822.  
  2823.  
  2824. /* For Pablo wrapper functions */
  2825.  
  2826. #if defined HAVE_PABLO || defined PABLO
  2827. extern int HDFinitIOTrace(char *traceFileName, intn detail, intn lifetime,
  2828.                           intn timeWindow, float64 timeWindowSize,
  2829.                           intn regionTrace, intn regionSize,
  2830.                           uint16 procTraceMask );
  2831. extern int HDFendIOTrace(void);
  2832.  
  2833. #ifndef PABLO_FNAMES
  2834. #   define PABLO_FNAMES
  2835. #ifdef DF_CAPFNAMES
  2836. #   define nihinitiotrace FNAME(IHINITIOTRACE)
  2837. #   define nhendiotrace   FNAME(HENDIOTRACE)
  2838. #else  /* !DF_CAPFNAMES */
  2839. #   define nihinitiotrace FNAME(ihinitiotrace)
  2840. #   define nhendiotrace   FNAME(hendiotrace)
  2841. #endif /* DF_CAPFNAMES */
  2842. #endif /* PABLO_FNAMES */
  2843.  
  2844. #endif /* HAVE_PABLO || PABLO*/
  2845.  
  2846. #ifdef HAVE_FMPOOL
  2847. /******************************************************************************
  2848. NAME
  2849.      Hmpset - set pagesize and maximum number of pages to cache on next open/create
  2850.  
  2851. DESCRIPTION
  2852.      Set the pagesize and maximum number of pages to cache on the next 
  2853.      open/create of a file. A pagesize that is a power of 2 is recommended.
  2854.  
  2855.      The values set here only affect the next open/creation of a file and
  2856.      do not change a particular file's paging behaviour after it has been
  2857.      opened or created. This maybe changed in a later release.
  2858.  
  2859.      Use flags arguement of 'MP_PAGEALL' if the whole file is to be cached 
  2860.      in memory otherwise passs in zero.
  2861.  
  2862. RETURNS
  2863.      Returns SUCCEED if successful and FAIL otherwise
  2864.  
  2865. NOTE
  2866.      This calls the real routine MPset().
  2867.      Currently 'maxcache' has to be greater than 1. Maybe use special 
  2868.      case of 0 to specify you want to turn page buffering off or use
  2869.      the flags arguement. 
  2870.  
  2871. ******************************************************************************/
  2872. extern int  Hmpset(int pagesize, /* IN: pagesize to use for next open/create */
  2873.                    int maxcache, /* IN: max number of pages to cache */
  2874.                    int flags     /* IN: flags = 0, MP_PAGEALL */);
  2875.  
  2876. /******************************************************************************
  2877. NAME
  2878.      Hmpget - get last pagesize and max number of pages cached for open/create
  2879.  
  2880. DESCRIPTION
  2881.      This gets the last pagesize and maximum number of pages cached for 
  2882.      the last open/create of a file.
  2883.  
  2884. RETURNS
  2885.      Returns SUCCEED.
  2886.  
  2887. NOTES
  2888.      This routine calls the real routine MPget().
  2889. ******************************************************************************/
  2890. extern int  Hmpget(int *pagesize, /*OUT: pagesize to used in last open/create */
  2891.                    int *maxcache, /*OUT: max number of pages cached in last open/create */
  2892.                    int flags      /* IN: */);
  2893.  
  2894. #endif /* HAVE_FMPOOL */
  2895.  
  2896. /* Vset interface functions (used to be in vproto.h) */
  2897.  
  2898. /* Useful macros, which someday might become actuall functions */
  2899. /*
  2900.  * macros for VSinquire
  2901.  * all these macros should be public for users
  2902.  */
  2903. #define VSQuerycount(vs, count) \
  2904.         (VSinquire (vs, (int32 *) count, (int32*) NULL, (char*) NULL, (int32*) NULL, (char*) NULL))
  2905.  
  2906. #define VSQueryinterlace(vs, intr) \
  2907.         (VSinquire (vs, (int32 *) NULL, (int32*) intr, (char*) NULL, (int32*) NULL, (char*) NULL))
  2908.  
  2909. #define VSQueryfields(vs, flds) \
  2910.         (VSinquire (vs, (int32 *) NULL, (int32*) NULL, (char*) flds, (int32*) NULL, (char*) NULL))
  2911.  
  2912. #define VSQueryvsize(vs, size) \
  2913.         (VSinquire (vs, (int32 *) NULL, (int32*) NULL, (char*) NULL, (int32*) size, (char*) NULL))
  2914.  
  2915. #define VSQueryname(vs, name) \
  2916.         (VSinquire (vs, (int32 *) NULL, (int32*) NULL, (char*) NULL, (int32*) NULL, (char*) name))
  2917.  
  2918. /* 
  2919.    ** from vattr.c
  2920.  */
  2921.    extern intn Vsetattr
  2922.                 (int32 vgid,  const char *attrname, int32 datatype,
  2923.                  int32 count, const void * values);
  2924.    extern intn Vnattrs
  2925.                 (int32 vgid);
  2926.    extern intn Vfindattr
  2927.                 (int32 vgid, const char *attrname);
  2928.    extern intn Vattrinfo
  2929.                 (int32 vgid, intn attrindex, char *name, 
  2930.                  int32 *datatype, int32 *count, int32 *size);
  2931.    extern intn Vgetattr
  2932.                 (int32 vgid, intn attrindex, void * values);
  2933.    extern int32 Vgetversion
  2934.                 (int32 vgid);
  2935.    extern intn VSfindex
  2936.                  (int32 vsid, const char *fieldname, int32 *fldindex);
  2937.    extern intn VSsetattr
  2938.                 (int32 vsid, int32 findex, const char *attrname,
  2939.                  int32 datatype, int32 count, const void * values);
  2940.    extern intn VSnattrs
  2941.                 (int32 vsid);
  2942.    extern intn VSfnattrs
  2943.                 (int32 vsid, int32 findex);
  2944.    extern intn VSfindattr
  2945.                 (int32 vsid, int32 findex, const char *attrname);
  2946.    extern intn VSattrinfo
  2947.                 (int32 vsid, int32 findex, intn attrindex,
  2948.                  char *name, int32 *datatype, int32 *count, 
  2949.                  int32 *size);
  2950.    extern intn VSgetattr
  2951.                 (int32 vsid, int32 findex, intn attrindex,
  2952.                   void * values);
  2953.    extern intn VSisattr
  2954.                 (int32 vsid);
  2955. /*
  2956.    ** from vconv.c
  2957.  */
  2958.     extern int32 vicheckcompat
  2959.                 (HFILEID f);
  2960.  
  2961.     extern int32 vimakecompat
  2962.                 (HFILEID f);
  2963.  
  2964.     extern int32 vcheckcompat
  2965.                 (char  * fs);
  2966.  
  2967.     extern int32 vmakecompat
  2968.                 (char  * fs);
  2969.  
  2970. /*
  2971.    ** from vg.c
  2972.  */
  2973.     extern int32 VSelts
  2974.                 (int32 vkey);
  2975.  
  2976.     extern int32 VSgetinterlace
  2977.                 (int32 vkey);
  2978.  
  2979.     extern intn VSsetinterlace
  2980.                 (int32 vkey, int32 interlace);
  2981.  
  2982.     extern int32 VSgetfields
  2983.                 (int32 vkey, char  * fields);
  2984.  
  2985.     extern intn VSfexist
  2986.                 (int32 vkey, char  * fields);
  2987.  
  2988.     extern int32 VSsizeof
  2989.                 (int32 vkey, char  * fields);
  2990.  
  2991.     extern void VSdump
  2992.                 (int32 vkey);
  2993.  
  2994.     extern int32 VSsetname
  2995.                 (int32 vkey, const char  * vsname);
  2996.  
  2997.     extern int32 VSsetclass
  2998.                 (int32 vkey, const char  * vsclass);
  2999.  
  3000.     extern int32 VSgetname
  3001.                 (int32 vkey, char  * vsname);
  3002.  
  3003.     extern int32 VSgetclass
  3004.                 (int32 vkey, char  * vsclass);
  3005.  
  3006.     extern intn VSinquire
  3007.                 (int32 vkey, int32  * nelt, int32  * interlace,
  3008.            char  * fields, int32  * eltsize, char  * vsname);
  3009.  
  3010.     extern int32 VSlone
  3011.                 (HFILEID f, int32  * idarray, int32 asize);
  3012.  
  3013.     extern int32 Vlone
  3014.                 (HFILEID f, int32  * idarray, int32 asize);
  3015.  
  3016.     extern int32 Vfind
  3017.                 (HFILEID f, const char  * vgname);
  3018.  
  3019.     extern int32 VSfind
  3020.                 (HFILEID f, const char  * vsname);
  3021.  
  3022.     extern int32 Vfindclass
  3023.                 (HFILEID f, const char  * vgclass);
  3024.  
  3025.     extern int32 VSfindclass
  3026.                 (HFILEID f, const char  * vsclass);
  3027.  
  3028.     extern void Vsetzap
  3029.                 (void);
  3030.  
  3031. /*
  3032.    ** from vgp.c
  3033.  */
  3034.     extern intn vcompare
  3035.                 (void * k1, void * k2, intn cmparg);
  3036.  
  3037.     extern intn vcompareref
  3038.                 (void * k1, void * k2, intn cmparg);
  3039.  
  3040.     extern void vdestroynode
  3041.                 (void * n);
  3042.  
  3043.     extern void vtfreekey
  3044.                 (void * k);
  3045.  
  3046.     extern intn Vinitialize
  3047.                 (HFILEID f);
  3048.  
  3049.     extern intn Vfinish
  3050.                 (HFILEID f);
  3051.  
  3052.     extern HFILEID Vopen
  3053.                 (char *path, intn acc_mode, int16 ndds);
  3054.  
  3055.     extern intn Vclose
  3056.                 (HFILEID f);
  3057.  
  3058.     extern int32 vexistvg
  3059.                 (HFILEID f, uint16 vgid);
  3060.  
  3061.     extern int32 Vattach
  3062.                 (HFILEID f, int32 vgid, const char  * accesstype);
  3063.  
  3064.     extern int32 Vdetach
  3065.                 (int32 vkey);
  3066.  
  3067.     extern int32 Vinsert
  3068.                 (int32 vkey, int32 vskey);
  3069.     /* note: 2nd arg of Vinsert can also be (VGROUP *) */
  3070.  
  3071.     extern int32 Vflocate
  3072.                 (int32 vkey, char  * field);
  3073.  
  3074.     extern intn Vinqtagref
  3075.                 (int32 vkey, int32 tag, int32 ref);
  3076.  
  3077.     extern int32 Vntagrefs
  3078.                 (int32 vkey);
  3079.  
  3080.     extern int32 Vnrefs
  3081.                 (int32 vkey,int32 tag);
  3082.  
  3083.     extern int32 Vgettagrefs
  3084.                 (int32 vkey, int32  tagarray[], int32  refarray[], int32 n);
  3085.  
  3086.     extern intn Vgettagref
  3087.                 (int32 vkey, int32 which, int32  * tag, int32  * ref);
  3088.  
  3089.     extern int32 VQueryref
  3090.                 (int32 vkey);
  3091.  
  3092.     extern int32 VQuerytag
  3093.                 (int32 vkey);
  3094.  
  3095.     extern int32 Vaddtagref
  3096.                 (int32 vkey, int32 tag, int32 ref);
  3097.  
  3098.     extern int32 Ventries
  3099.                 (HFILEID f, int32 vgid);
  3100.  
  3101.     extern int32 Vsetname
  3102.                 (int32 vkey, const char  * vgname);
  3103.  
  3104.     extern int32 Vsetclass
  3105.                 (int32 vkey, const char  * vgclass);
  3106.  
  3107.     extern intn Visvg
  3108.                 (int32 vkey, int32 id);
  3109.  
  3110.     extern intn Visvs
  3111.                 (int32 vkey, int32 id);
  3112.  
  3113.     extern int32 Vgetid
  3114.                 (HFILEID f, int32 vgid);
  3115.  
  3116.     extern int32 Vgetnext
  3117.                 (int32 vkey, int32 id);
  3118.  
  3119.     extern int32 Vgetname
  3120.                 (int32 vkey, char  * vgname);
  3121.  
  3122.     extern int32 Vgetclass
  3123.                 (int32 vkey, char  * vgclass);
  3124.  
  3125.     extern intn Vinquire
  3126.                 (int32 vkey, int32  * nentries, char  * vgname);
  3127.  
  3128.     extern int32 Vdelete
  3129.                 (int32 f, int32 ref);
  3130.  
  3131. /*******************************************************************************
  3132. NAME
  3133.    Vdeletetagref - delete tag/ref pair in Vgroup
  3134.  
  3135. DESCRIPTION
  3136.     Deletes the given tag/ref pair from the Vgroup.  If the given tag/ref pair 
  3137.     does not exist in the vgroup the routine will return FAIL. Users should use 
  3138.     Vinqtagref() to check if the tag/ref pair exists before deleting.
  3139.  
  3140. RETURNS
  3141.     Returns SUCCEED if the tag/ref pair is deleted from Vgroup and
  3142.     FAIL if unsuccessful.
  3143.  
  3144. *******************************************************************************/
  3145. intn
  3146. Vdeletetagref(int32 vkey, /* IN: vgroup key */ 
  3147.               int32 tag,  /* IN: tag to delete in vgroup */
  3148.               int32 ref   /* IN: ref to delete in vgroup */);
  3149.  
  3150.     extern intn VPshutdown(void);
  3151.  
  3152. /*
  3153.    ** from vparse.c
  3154.  */
  3155.     extern int32 scanattrs
  3156.                 (const char  * attrs, int32  * attrc, char  *** attrv);
  3157.  
  3158. /*
  3159.    ** from vhi.c
  3160.  */
  3161.     extern int32 VHstoredata
  3162.                 (HFILEID f, const char  * field, const uint8  *buf, int32 n, int32 datatype,
  3163.                  const char  * vsname, const char  * vsclass);
  3164.  
  3165.     extern int32 VHstoredatam
  3166.                 (HFILEID f, const char * field, const uint8  *buf, int32 n, int32 datatype,
  3167.                  const char  * vsname, const char  * vsclass, int32 order);
  3168.  
  3169.     extern int32 VHmakegroup
  3170.                 (HFILEID f, int32  tagarray[], int32  refarray[], int32 n,
  3171.                     const char * vgname, const char  * vgclass);
  3172.  
  3173. /*
  3174.    ** from vio.c
  3175.  */
  3176.  
  3177.     extern intn VSPhshutdown(void);
  3178.  
  3179.     extern int32 vexistvs
  3180.                 (HFILEID f, uint16 vsref);
  3181.  
  3182.     extern void vsdestroynode
  3183.                 (void * n);
  3184.  
  3185.     extern void vfdestroynode
  3186.                 (void * n);
  3187.  
  3188.     extern int32 VSattach
  3189.                 (HFILEID f, int32 vsref, const char  * accesstype);
  3190.  
  3191.     extern int32 VSdetach
  3192.                 (int32 vkey);
  3193.  
  3194.     extern int32 VSQuerytag
  3195.                 (int32 vkey);
  3196.  
  3197.     extern int32 VSQueryref
  3198.                 (int32 vkey);
  3199.  
  3200.     extern int32 VSgetid
  3201.                 (HFILEID f, int32 vsref);
  3202.  
  3203.     extern int32 VSgetversion
  3204.                 (int32 vkey);
  3205.  
  3206.     extern int32 VSdelete
  3207.                 (int32 f, int32 ref);
  3208.  
  3209.     extern int32 VSappendable
  3210.                 (int32 vkey, int32 blk);
  3211.  
  3212. /*
  3213.    ** from vsfld.c
  3214.  */
  3215.  
  3216.     extern intn VSsetfields
  3217.                 (int32 vkey, const char  * fields);
  3218.  
  3219.     extern intn VSfdefine
  3220.                 (int32 vkey, const char  * field, int32 localtype, int32 order);
  3221.  
  3222.     extern int32 VFnfields
  3223.                 (int32 vkey);
  3224.  
  3225.     extern char *VFfieldname
  3226.                 (int32 vkey, int32 index);
  3227.  
  3228.     extern int32 VFfieldtype
  3229.                 (int32 vkey, int32 index);
  3230.  
  3231.     extern int32 VFfieldisize
  3232.                 (int32 vkey, int32 index);
  3233.  
  3234.     extern int32 VFfieldesize
  3235.                 (int32 vkey, int32 index);
  3236.  
  3237.     extern int32 VFfieldorder
  3238.                 (int32 vkey, int32 index);
  3239.  
  3240.     extern intn VSsetexternalfile
  3241.         (int32 vkey, const char *filename, int32 offset);
  3242.  
  3243.     extern intn VSfpack
  3244.                 (int32 vsid, intn packtype, const char *fields_in_buf,
  3245.                 void * buf, intn bufsz, intn n_records, 
  3246.                 const char *fields, void * fldbufpt[]);
  3247.  
  3248. /*
  3249.    ** from vrw.c
  3250.  */
  3251.     extern intn VSPshutdown(void);
  3252.  
  3253.     extern int32 VSseek
  3254.                 (int32 vkey, int32 eltpos);
  3255.  
  3256.     extern int32 VSread
  3257.                 (int32 vkey, uint8  buf[], int32 nelt, int32 interlace);
  3258.  
  3259.     extern int32 VSwrite
  3260.                 (int32 vkey, const uint8  buf[], int32 nelt, int32 interlace);
  3261.  
  3262. /*
  3263.    ** from vgF.c
  3264.  */
  3265. #ifndef VG_FNAMES
  3266. #   define VG_FNAMES
  3267. #ifdef DF_CAPFNAMES
  3268. #   define  ndfivopn FNAME(DFIVOPN)
  3269. #   define  ndfvclos FNAME(DFVCLOS)
  3270. #   define  nvatchc  FNAME(VATCHC)
  3271. #   define  nvdtchc  FNAME(VDTCHC)
  3272. #   define  nvgnamc  FNAME(VGNAMC)
  3273. #   define  nvgclsc  FNAME(VGCLSC)
  3274. #   define  nvinqc   FNAME(VINQC)
  3275. #   define  nvdelete FNAME(VDELETE)
  3276. #   define  nvgidc   FNAME(VGIDC)
  3277. #   define  nvgnxtc  FNAME(VGNXTC)
  3278. #   define  nvsnamc  FNAME(VSNAMC)
  3279. #   define  nvsclsc  FNAME(VSCLSC)
  3280. #   define  nvinsrtc FNAME(VINSRTC)
  3281. #   define  nvisvgc  FNAME(VISVGC)
  3282. #   define  nvisvsc  FNAME(VISVSC)
  3283. #   define  nvsatchc FNAME(VSATCHC)
  3284. #   define  nvsdtchc FNAME(VSDTCHC)
  3285. #   define  nvsqref  FNAME(VSQREF)
  3286. #   define  nvsqtag  FNAME(VSQTAG)
  3287. #   define  nvsgver  FNAME(VSGVER)
  3288. #   define  nvsseekc FNAME(VSSEEKC)
  3289. #   define  nvsgnamc FNAME(VSGNAMC)
  3290. #   define  nvsgclsc FNAME(VSGCLSC)
  3291. #   define  nvsinqc  FNAME(VSINQC)
  3292. #   define  nvsfexc  FNAME(VSFEXC)
  3293. #   define  nvsfndc  FNAME(VSFNDC)
  3294. #   define  nvsgidc  FNAME(VSGIDC)
  3295. #   define  nvsdltc  FNAME(VSDLTC)
  3296. #   define  nvsapp   FNAME(VSAPP)
  3297. #   define  nvssnamc FNAME(VSSNAMC)
  3298. #   define  nvssclsc FNAME(VSSCLSC)
  3299. #   define  nvssfldc FNAME(VSSFLDC)
  3300. #   define  nvssintc FNAME(VSSINTC)
  3301. #   define  nvsfdefc FNAME(VSFDEFC)
  3302. #   define  nvssextfc FNAME(VSSEXTFC)
  3303. #   define  nvfnflds FNAME(VFNFLDS)
  3304. #   define  nvffname FNAME(VFFNAME)
  3305. #   define  nvfftype FNAME(VFFTYPE)
  3306. #   define  nvffisiz FNAME(VFFISIZ)
  3307. #   define  nvffesiz FNAME(VFFESIZ)
  3308. #   define  nvffordr FNAME(VFFORDR)
  3309. #   define  nvsfrdc  FNAME(VSFRDC)
  3310. #   define  nvsfrd   FNAME(VSFRD)
  3311. #   define  nvsreadc FNAME(VSREADC)
  3312. #   define  nvsfwrt  FNAME(VSFWRT)
  3313. #   define  nvsfwrtc FNAME(VSFWRTC)
  3314. #   define  nvswritc FNAME(VSWRITC)
  3315. #   define  nvsgintc FNAME(VSGINTC)
  3316. #   define  nvseltsc FNAME(VSELTSC)
  3317. #   define  nvsgfldc FNAME(VSGFLDC)
  3318. #   define  nvssizc  FNAME(VSSIZC)
  3319. #   define  nventsc  FNAME(VENTSC)
  3320. #   define  nvlonec  FNAME(VLONEC)
  3321. #   define  nvslonec FNAME(VSLONEC)
  3322. #   define  nvfindc  FNAME(VFINDC)
  3323. #   define  nvfndclsc FNAME(VFNDCLSC)
  3324. #   define  nvhscdc  FNAME(VHSCDC)
  3325. #   define  nvhsdc   FNAME(VHSDC)
  3326. #   define  nvhscdmc FNAME(VHSCDMC)
  3327. #   define  nvhsdmc  FNAME(VHSDMC)
  3328. #   define  nvhmkgpc FNAME(VHMKGPC)
  3329. #   define  nvflocc  FNAME(VFLOCC)
  3330. #   define  nvinqtrc FNAME(VINQTRC)
  3331. #   define  nvntrc   FNAME(VNTRC)
  3332. #   define  nvnrefs  FNAME(VNREFS)
  3333. #   define  nvgttrsc FNAME(VGTTRSC)
  3334. #   define  nvqref   FNAME(VQREF)
  3335. #   define  nvqtag   FNAME(VQTAG)
  3336. #   define  nvgttrc  FNAME(VGTTRC)
  3337. #   define  nvadtrc  FNAME(VADTRC)
  3338. #   define  nvfstart FNAME(VFSTART)
  3339. #   define  nvfend   FNAME(VFEND)
  3340. #   define  nvsqfnelt   FNAME(VSQFNELT)
  3341. #   define  nvsqfintr   FNAME(VSQFINTR)
  3342. #   define  nvsqfldsc   FNAME(VSQFLDSC)
  3343. #   define  nvsqfvsiz   FNAME(VSQFVSIZ)
  3344. #   define  nvsqnamec   FNAME(VSQNAMEC)
  3345. #   define  nvsfccpk    FNAME(VSFCCPK)
  3346. #   define  nvsfncpk    FNAME(VSFNCPK)
  3347. #   define  nvdtrc      FNAME(VDTRC)
  3348. #   define  nvscfcls    FNAME(VSCFCLS)
  3349. #else                           /* !DF_CAPFNAMES */
  3350. #   define  ndfivopn FNAME(dfivopn)
  3351. #   define  ndfvclos FNAME(dfvclos)
  3352. #   define  nvatchc  FNAME(vatchc)
  3353. #   define  nvdtchc  FNAME(vdtchc)
  3354. #   define  nvgnamc  FNAME(vgnamc)
  3355. #   define  nvgclsc  FNAME(vgclsc)
  3356. #   define  nvinqc   FNAME(vinqc)
  3357. #   define  nvdelete FNAME(vdelete)
  3358. #   define  nvgidc   FNAME(vgidc)
  3359. #   define  nvgnxtc  FNAME(vgnxtc)
  3360. #   define  nvsnamc  FNAME(vsnamc)
  3361. #   define  nvsclsc  FNAME(vsclsc)
  3362. #   define  nvinsrtc FNAME(vinsrtc)
  3363. #   define  nvisvgc  FNAME(visvgc)
  3364. #   define  nvisvsc  FNAME(visvsc)
  3365. #   define  nvsatchc FNAME(vsatchc)
  3366. #   define  nvsdtchc FNAME(vsdtchc)
  3367. #   define  nvsqref  FNAME(vsqref)
  3368. #   define  nvsqtag  FNAME(vsqtag)
  3369. #   define  nvsgver  FNAME(vsgver)
  3370. #   define  nvsseekc FNAME(vsseekc)
  3371. #   define  nvsgnamc FNAME(vsgnamc)
  3372. #   define  nvsgclsc FNAME(vsgclsc)
  3373. #   define  nvsinqc  FNAME(vsinqc)
  3374. #   define  nvsfexc  FNAME(vsfexc)
  3375. #   define  nvsfndc  FNAME(vsfndc)
  3376. #   define  nvsgidc  FNAME(vsgidc)
  3377. #   define  nvsdltc  FNAME(vsdltc)
  3378. #   define  nvsapp   FNAME(vsapp)
  3379. #   define  nvssnamc FNAME(vssnamc)
  3380. #   define  nvssclsc FNAME(vssclsc)
  3381. #   define  nvssfldc FNAME(vssfldc)
  3382. #   define  nvssintc FNAME(vssintc)
  3383. #   define  nvsfdefc FNAME(vsfdefc)
  3384. #   define  nvssextfc FNAME(vssextfc)
  3385. #   define  nvfnflds FNAME(vfnflds)
  3386. #   define  nvffname FNAME(vffname)
  3387. #   define  nvfftype FNAME(vfftype)
  3388. #   define  nvffisiz FNAME(vffisiz)
  3389. #   define  nvffesiz FNAME(vffesiz)
  3390. #   define  nvffordr FNAME(vffordr)
  3391. #   define  nvsfrdc  FNAME(vsfrdc)
  3392. #   define  nvsfrd   FNAME(vsfrd)
  3393. #   define  nvsreadc FNAME(vsreadc)
  3394. #   define  nvsfwrtc FNAME(vsfwrtc)
  3395. #   define  nvsfwrt  FNAME(vsfwrt)
  3396. #   define  nvswritc FNAME(vswritc)
  3397. #   define  nvsgintc FNAME(vsgintc)
  3398. #   define  nvseltsc FNAME(vseltsc)
  3399. #   define  nvsgfldc FNAME(vsgfldc)
  3400. #   define  nvssizc  FNAME(vssizc)
  3401. #   define  nventsc  FNAME(ventsc)
  3402. #   define  nvlonec  FNAME(vlonec)
  3403. #   define  nvslonec FNAME(vslonec)
  3404. #   define  nvfindc  FNAME(vfindc)
  3405. #   define  nvfndclsc FNAME(vfndclsc)
  3406. #   define  nvhscdc  FNAME(vhscdc)
  3407. #   define  nvhsdc   FNAME(vhsdc)
  3408. #   define  nvhscdmc  FNAME(vhscdmc)
  3409. #   define  nvhsdmc  FNAME(vhsdmc)
  3410. #   define  nvhmkgpc FNAME(vhmkgpc)
  3411. #   define  nvflocc  FNAME(vflocc)
  3412. #   define  nvinqtrc FNAME(vinqtrc)
  3413. #   define  nvntrc   FNAME(vntrc)
  3414. #   define  nvnrefs  FNAME(vnrefs)
  3415. #   define  nvgttrsc FNAME(vgttrsc)
  3416. #   define  nvqref   FNAME(vqref)
  3417. #   define  nvqtag   FNAME(vqtag)
  3418. #   define  nvgttrc  FNAME(vgttrc)
  3419. #   define  nvadtrc  FNAME(vadtrc)
  3420. #   define  nvfstart FNAME(vfstart)
  3421. #   define  nvfend   FNAME(vfend)
  3422. #   define  nvsqfnelt   FNAME(vsqfnelt)
  3423. #   define  nvsqfintr   FNAME(vsqfintr)
  3424. #   define  nvsqfldsc   FNAME(vsqfldsc)
  3425. #   define  nvsqfvsiz   FNAME(vsqfvsiz)
  3426. #   define  nvsqnamec   FNAME(vsqnamec)
  3427. #   define  nvsfccpk    FNAME(vsfccpk)
  3428. #   define  nvsfncpk    FNAME(vsfncpk)
  3429. #   define  nvdtrc      FNAME(vdtrc)
  3430. #   define  nvscfcls    FNAME(vscfcls)
  3431. #endif                          /* DF_CAPFNAMES */
  3432. #endif                          /* VG_FNAMES */
  3433.  
  3434.     extern      FRETVAL(intf) ndfivopn
  3435.                 (_fcd filename, intf  * acc_mode, intf  * defdds, intf  * namelen);
  3436.  
  3437.     extern      FRETVAL(intf) ndfvclos
  3438.                 (intf  * file_id);
  3439.  
  3440.     extern      FRETVAL(intf) nvatchc
  3441.                 (intf  * f, intf  * vgid, _fcd accesstype);
  3442.  
  3443.     extern      FRETVAL(intf) nvdtchc
  3444.                 (intf  * vkey);
  3445.  
  3446.     extern      FRETVAL(intf) nvgnamc
  3447.                 (intf  * vkey, _fcd vgname);
  3448.  
  3449.     extern      FRETVAL(intf) nvgclsc
  3450.                 (intf  * vkey, _fcd vgclass);
  3451.  
  3452.     extern      FRETVAL(intf) nvinqc
  3453.                 (intf  * vkey, intf  * nentries, _fcd vgname);
  3454.  
  3455.     extern      FRETVAL(intf) nvdelete
  3456.                 (intf  *f, intf  * vkey);
  3457.  
  3458.     extern      FRETVAL(intf) nvgidc
  3459.                 (intf  * f, intf  * vgid);
  3460.  
  3461.     extern      FRETVAL(intf) nvgnxtc
  3462.                 (intf  * vkey, intf  * id);
  3463.  
  3464.     extern      FRETVAL(intf) nvsnamc
  3465.                 (intf  * vkey, _fcd vgname, intf  * vgnamelen);
  3466.  
  3467.     extern      FRETVAL(intf) nvsclsc
  3468.                 (intf  * vkey, _fcd vgclass, intf  * vgclasslen);
  3469.  
  3470.     extern      FRETVAL(intf) nvinsrtc
  3471.                 (intf  * vkey, intf  * vobjptr);
  3472.  
  3473.     extern      FRETVAL(intf) nvisvgc
  3474.                 (intf  * vkey, intf  * id);
  3475.  
  3476.     extern      FRETVAL(intf) nvfstart
  3477.                 (intf  * f);
  3478.  
  3479.     extern      FRETVAL(intf) nvfend
  3480.                 (intf  * f);
  3481.  
  3482.     extern      FRETVAL(intf) nvisvsc
  3483.                 (intf  * vkey, intf  * id);
  3484.  
  3485.     extern      FRETVAL(intf) nvsatchc
  3486.                 (intf  * f, intf  * vsref, _fcd accesstype);
  3487.  
  3488.     extern      FRETVAL(intf) nvsdtchc
  3489.                 (intf  * vkey);
  3490.  
  3491.     extern      FRETVAL(intf) nvsqref
  3492.                 (intf  * vkey);
  3493.  
  3494.     extern      FRETVAL(intf) nvsqtag
  3495.                 (intf  * vkey);
  3496.   
  3497.     extern      FRETVAL(intf) nvsqnfld
  3498.                 (intf * vkey);
  3499.  
  3500.     extern      FRETVAL(intf) nvsgver
  3501.                 (intf  * vkey);
  3502.  
  3503.     extern      FRETVAL(intf) nvsseekc
  3504.                 (intf  * vkey, intf  * eltpos);
  3505.  
  3506.     extern      FRETVAL(intf) nvsgnamc
  3507.                 (intf  * vkey, _fcd vsname, intf *vsnamelen);
  3508.  
  3509.     extern      FRETVAL(intf) nvsgclsc
  3510.                 (intf  * vkey, _fcd vsclass, intf *vsclasslen);
  3511.  
  3512.     extern      FRETVAL(intf) nvsinqc
  3513.                 (intf  * vkey, intf  * nelt, intf  * interlace, _fcd fields,
  3514.         intf  * eltsize, _fcd vsname, intf *fieldslen, intf *vsnamelen);
  3515.  
  3516.     extern      FRETVAL(intf) nvsfexc
  3517.                 (intf  * vkey, _fcd fields, intf  * fieldslen);
  3518.  
  3519.     extern      FRETVAL(intf) nvsfndc
  3520.                 (intf  * f, _fcd name, intf  * namelen);
  3521.  
  3522.     extern      FRETVAL(intf) nvsgidc
  3523.                 (intf  * f, intf  * vsref);
  3524.  
  3525.     extern      FRETVAL(intf) nvsdltc
  3526.                 (intf  * f, intf  * vsref);
  3527.  
  3528.     extern      FRETVAL(intf) nvsapp
  3529.                 (intf  * vkey, intf  *blk);
  3530.  
  3531.     extern      FRETVAL(intf) nvssnamc
  3532.                 (intf  * vkey, _fcd vsname, intf  * vsnamelen);
  3533.  
  3534.     extern      FRETVAL(intf) nvssclsc
  3535.                 (intf  * vkey, _fcd vsclass, intf  * vsclasslen);
  3536.  
  3537.     extern      FRETVAL(intf) nvssfldc
  3538.                 (intf  * vkey, _fcd fields, intf  * fieldslen);
  3539.  
  3540.     extern      FRETVAL(intf) nvssintc
  3541.                 (intf  * vkey, intf  * interlace);
  3542.  
  3543.     extern      FRETVAL(intf) nvsfdefc
  3544.                 (intf  * vkey, _fcd field, intf  * localtype,
  3545.                  intf  * order, intf  * fieldlen);
  3546.  
  3547.     extern      FRETVAL(intf) nvssextfc
  3548.                 (intf  * vkey, _fcd fname, intf  * offset,
  3549.                  intf  * fnamelen);
  3550.  
  3551.     extern      FRETVAL(intf) nvfnflds
  3552.                 (intf  * vkey);
  3553.  
  3554.     extern      FRETVAL(intf) nvffname
  3555.                 (intf  * vkey, intf  *index, _fcd fname);
  3556.  
  3557.     extern      FRETVAL(intf) nvfftype
  3558.                 (intf  * vkey, intf  *index);
  3559.  
  3560.     extern      FRETVAL(intf) nvffisiz
  3561.                 (intf  * vkey, intf  *index);
  3562.  
  3563.     extern      FRETVAL(intf) nvffesiz
  3564.                 (intf  * vkey, intf  *index);
  3565.  
  3566.     extern      FRETVAL(intf) nvffordr
  3567.                 (intf  * vkey, intf  *index);
  3568.  
  3569.     extern      FRETVAL(intf) nvsfrdc
  3570.                 (intf  * vkey, _fcd  cbuf, intf  * nelt,
  3571.                  intf  * interlace);
  3572.  
  3573.     extern      FRETVAL(intf) nvsfrd
  3574.                 (intf  * vkey, intf  * buf, intf  * nelt,
  3575.                  intf  * interlace);
  3576.  
  3577.     extern      FRETVAL(intf) nvsreadc
  3578.                 (intf  * vkey, uint8  * buf, intf  * nelt,
  3579.                  intf  * interlace);
  3580.  
  3581.     extern      FRETVAL(intf) nvsfwrtc
  3582.                 (intf  * vkey, _fcd  cbuf, intf  * nelt,
  3583.                  intf  * interlace);
  3584.  
  3585.     extern      FRETVAL(intf) nvsfwrt
  3586.                 (intf  * vkey, intf  * buf, intf  * nelt,
  3587.                  intf  * interlace);
  3588.  
  3589.     extern      FRETVAL(intf) nvswritc
  3590.                 (intf  * vkey, uint8  * buf, intf  * nelt,
  3591.                  intf  * interlace);
  3592.  
  3593.     extern      FRETVAL(intf) nvsgintc
  3594.                 (intf  * vkey);
  3595.  
  3596.     extern      FRETVAL(intf) nvseltsc
  3597.                 (intf  * vkey);
  3598.  
  3599.     extern      FRETVAL(intf) nvsgfldc
  3600.                 (intf  * vkey, _fcd fields);
  3601.  
  3602.     extern      FRETVAL(intf) nvssizc
  3603.                 (intf  * vkey, _fcd fields, intf  * fieldslen);
  3604.  
  3605.     extern      FRETVAL(intf) nventsc
  3606.                 (intf  * f, intf  * vgid);
  3607.  
  3608.     extern      FRETVAL(intf) nvlonec
  3609.                 (intf  * f, intf  * idarray, intf  * asize);
  3610.  
  3611.     extern      FRETVAL(intf) nvslonec
  3612.                 (intf  * f, intf  * idarray, intf  * asize);
  3613.  
  3614.     extern      FRETVAL(intf) nvfindc
  3615.                 (intf  * f, _fcd name, intf  * namelen);
  3616.  
  3617.     extern      FRETVAL(intf) nvfndclsc
  3618.                 (intf  * f, _fcd vgclass, intf  * classlen);
  3619.  
  3620.     extern      FRETVAL(intf) nvhscdc
  3621.                 (intf  * f, _fcd field, _fcd  cbuf, intf  * n, 
  3622.                  intf  * datatype, _fcd vsname, _fcd vsclass, 
  3623.                  intf  * fieldlen, intf  * vsnamelen,
  3624.                  intf  * vsclasslen);
  3625.  
  3626.     extern      FRETVAL(intf) nvhsdc
  3627.                 (intf  * f, _fcd field, uint8  * buf, intf  * n, 
  3628.                  intf  * datatype, _fcd vsname, _fcd vsclass, 
  3629.                  intf  * fieldlen, intf  * vsnamelen,
  3630.                  intf  * vsclasslen);
  3631.  
  3632.     extern      FRETVAL(intf) nvhscdmc
  3633.                 (intf  * f, _fcd field, _fcd  cbuf, intf  * n,
  3634.                  intf  * datatype, _fcd vsname, _fcd vsclass, 
  3635.                  intf  * order, intf  * fieldlen, intf * vsnamelen,
  3636.                  intf  * vsclasslen);
  3637.  
  3638.     extern      FRETVAL(intf) nvhsdmc
  3639.                 (intf  * f, _fcd field, uint8  * buf, intf  * n,
  3640.                  intf  * datatype, _fcd vsname, _fcd vsclass, 
  3641.                  intf  * order, intf  * fieldlen, intf * vsnamelen,
  3642.                  intf  * vsclasslen);
  3643.  
  3644.     extern      FRETVAL(intf) nvhmkgpc
  3645.                 (intf  * f, intf  * tagarray, intf  * refarray, intf  * n,
  3646.                  _fcd vgname, _fcd vgclass, intf  * vgnamelen, intf  * vgclasslen);
  3647.  
  3648.     extern      FRETVAL(intf) nvflocc
  3649.                 (intf  * vkey, _fcd field, intf  * fieldlen);
  3650.  
  3651.     extern      FRETVAL(intf) nvinqtrc
  3652.                 (intf  * vkey, intf  * tag, intf  * ref);
  3653.  
  3654.     extern      FRETVAL(intf) nvntrc
  3655.                 (intf  * vkey);
  3656.  
  3657.     extern      FRETVAL(intf) nvnrefs
  3658.                 (intf  * vkey, intf  *tag);
  3659.  
  3660.     extern      FRETVAL(intf) nvqref
  3661.                 (intf  * vkey);
  3662.  
  3663.     extern      FRETVAL(intf) nvqtag
  3664.                 (intf  * vkey);
  3665.  
  3666.     extern      FRETVAL(intf) nvgttrsc
  3667.                 (intf  * vkey, intf  * tagarray, intf  * refarray, intf  * n);
  3668.  
  3669.     extern      FRETVAL(intf) nvgttrc
  3670.                 (intf  * vkey, intf  * which, intf  * tag, intf  * ref);
  3671.  
  3672.     extern      FRETVAL(intf) nvadtrc
  3673.                 (intf  * vkey, intf  * tag, intf  * ref);
  3674.  
  3675.     extern      FRETVAL(intf) nvdtrc
  3676.                 (intf  * vkey, intf  * tag, intf  * ref);
  3677.  
  3678.     extern      FRETVAL(intf) nvsqfnelt
  3679.                 (intf * vkey, intf * nelt);
  3680.  
  3681.     extern      FRETVAL(intf)nvsqfintr
  3682.                 (intf * vkey, intf * interlace);
  3683.  
  3684.     extern      FRETVAL(intf)nvsqfldsc
  3685.                 (intf * vkey, _fcd fields, intf *fieldslen);
  3686.  
  3687.     extern      FRETVAL(intf)nvsqfvsiz
  3688.                 (intf * vkey, intf * size);
  3689.  
  3690.     extern      FRETVAL(intf)nvsqnamec  
  3691.                 (intf * vkey, _fcd name, intf *namelen);
  3692.  
  3693.     extern      FRETVAL(intf)nvsfccpk
  3694.                 (intf *vs, intf *packtype, _fcd buflds, intf *buf, intf *bufsz,
  3695.         intf *nrecs, _fcd pckfld, _fcd fldbuf, intf *buflds_len, intf *fld_len);
  3696.  
  3697.     extern      FRETVAL(intf)nvsfncpk
  3698.                 (intf *vs, intf *packtype, _fcd buflds, intf *buf, intf *bufsz,
  3699.         intf *nrecs, _fcd pckfld, intf *fldbuf, intf *buflds_len, intf *fld_len);
  3700.  
  3701. /* 
  3702.   ** from vattrf.c
  3703.  */
  3704. #ifndef VATTR_FNAMES
  3705. #  define VATTR_FNAMES
  3706. #ifdef DF_CAPFNAMES
  3707. #  define nvsfcfdx   FNAME(VSFCFDX)
  3708. #  define nvsfcsat   FNAME(VSFCSAT)
  3709. #  define nvsfcsca   FNAME(VSFCSCA)
  3710. #  define nvsfnats   FNAME(VSFNATS)
  3711. #  define nvsffnas   FNAME(VSFFNAS)
  3712. #  define nvsfcfda   FNAME(VSFCFDA)
  3713. #  define nvsfcain   FNAME(VSFCAIN)
  3714. #  define nvsfgnat   FNAME(VSFGNAT)
  3715. #  define nvsfgcat   FNAME(VSFGCAT)
  3716. #  define nvsfisat   FNAME(VSFISAT)
  3717. #  define nvfcsatt   FNAME(VFCSATT)
  3718. #  define nvfcscat   FNAME(VFCSCAT)
  3719. #  define nvfnatts   FNAME(VFNATTS)
  3720. #  define nvfcfdat   FNAME(VFCFDAT)
  3721. #  define nvfainfo   FNAME(VFAINFO)
  3722. #  define nvfgnatt   FNAME(VFGNATT)
  3723. #  define nvfgcatt   FNAME(VFGCATT)
  3724. #  define nvfgver    FNAME(VFGVER)
  3725. #else       /* !DF_CAPFNAMES  */
  3726. #  define nvsfcfdx   FNAME(vsfcfdx)
  3727. #  define nvsfcsat   FNAME(vsfcsat)
  3728. #  define nvsfcsca   FNAME(vsfcsca)
  3729. #  define nvsfnats   FNAME(vsfnats)
  3730. #  define nvsffnas   FNAME(vsffnas)
  3731. #  define nvsfcfda   FNAME(vsfcfda)
  3732. #  define nvsfcain   FNAME(vsfcain)
  3733. #  define nvsfgnat   FNAME(vsfgnat)
  3734. #  define nvsfgcat   FNAME(vsfgcat)
  3735. #  define nvsfisat   FNAME(vsfisat)
  3736. #  define nvfcsatt   FNAME(vfcsatt)
  3737. #  define nvfcscat   FNAME(vfcscat)
  3738. #  define nvfnatts   FNAME(vfnatts)
  3739. #  define nvfcfdat   FNAME(vfcfdat)
  3740. #  define nvfainfo   FNAME(vfainfo)
  3741. #  define nvfgnatt   FNAME(vfgnatt)
  3742. #  define nvfgcatt   FNAME(vfgcatt)
  3743. #  define nvfgver    FNAME(vfgver)
  3744. #endif   /* DF_CAPFNAMES */
  3745. #endif   /* VATTR_FNAMES  */
  3746.    extern   FRETVAL(intf) nvsfcfdx
  3747.             (intf *vsid, _fcd fldnm, intf *findex, intf *fldnmlen);
  3748.    extern   FRETVAL(intf) nvsfcsat
  3749.             (intf *vsid, intf *findex, _fcd attrnm, intf *dtype,
  3750.              intf *count, intf *values, intf *attrnmlen);
  3751.    extern   FRETVAL(intf) nvsfcsca
  3752.             (intf *vsid, intf *findex, _fcd attrnm, intf *dtype,
  3753.              intf *count, _fcd values, intf *attrnmlen);
  3754.    extern   FRETVAL(intf) nvsfnats
  3755.             (intf *vsid);
  3756.    extern   FRETVAL(intf) nvsffnas
  3757.             (intf *vsid, intf *findex);
  3758.    extern   FRETVAL(intf) nvsfcfda
  3759.             (intf *vsid, intf *findex, _fcd attrnm, intf *attrnmlen);
  3760.    extern   FRETVAL(intf) nvsfcain
  3761.             (intf *vsid, intf *findex, intf *aindex, _fcd attrname,
  3762.              intf *dtype, intf *count, intf *size, intf *attrnamelen);
  3763.    extern   FRETVAL(intf) nvsfgnat
  3764.             (intf *vsid, intf *findex, intf *aindex, intf *values);
  3765.    extern   FRETVAL(intf) nvsfgcat
  3766.             (intf *vsid, intf *findex, intf *aindex, _fcd values);
  3767.    extern   FRETVAL(intf) nvsfisat
  3768.             (intf *vsid);
  3769.    extern   FRETVAL(intf) nvfcsatt
  3770.             (intf *vgid, _fcd attrnm, intf *dtype,
  3771.              intf *count, intf *values, intf *attrnmlen);
  3772.    extern   FRETVAL(intf) nvfcscat
  3773.             (intf *vgid, _fcd attrnm, intf *dtype, intf *count,
  3774.              _fcd values, intf *attrnmlen);
  3775.    extern   FRETVAL(intf) nvfnatts
  3776.             (intf *vgid);
  3777.    extern   FRETVAL(intf) nvfcfdat
  3778.             (intf *vgid, _fcd attrnm, intf *attrnmlen);
  3779.    extern   FRETVAL(intf) nvfainfo
  3780.             (intf *vgid, intf *aindex, _fcd attrname,
  3781.              intf *dtype, intf *count, intf *size);
  3782.    extern   FRETVAL(intf) nvfgnatt
  3783.             (intf *vgid, intf *aindex, intf *values);
  3784.    extern   FRETVAL(intf) nvfgcatt
  3785.             (intf *vgid, intf *aindex, _fcd values);
  3786.    extern   FRETVAL(intf) nvfgver
  3787.             (intf *vgid);
  3788.  
  3789. #if defined c_plusplus || defined __cplusplus
  3790. }
  3791. #endif                          /* c_plusplus || __cplusplus */
  3792.  
  3793. #endif                          /* _H_PROTO */
  3794.  
  3795.